Skip to main content

[archive] Internal Error #45

  • February 16, 2009
  • 3 replies
  • 0 views

[Migrated content. Thread originally posted on 13 February 2009]

We have been converting our system to 8.1 and during that I have run accross a couple of odd issues. The following is something that I can explain and I think can be replicated.

The following code, which I agree is in error casuses a very odd issue...
if ed-end-loc-no = spaces or high-values or zero
move high-values to ed-end-loc-no.
else
move ws-end-loc-no to end-loc.

The last 2 lines were supposed to be deleted and I had missed that. However, the side effect I got from this unmatched else is the issue.

That error produces a "Memory access violation" and then causes an error on the in the code 20 or so lines later with an Internal error #45.

The kicker is this compeltely stops the compile, it does not check the remaining code.

Had the unmatched else and this internal error been the only issues I may have been able to figure it out, but I had several errors so it really was not obvious what was going on and the fact that the compiler stops in the middle of the code is confusing.

Is this a bug? ...or is there an explanation as to why the compiler would give up this way?

3 replies

[Migrated content. Thread originally posted on 13 February 2009]

We have been converting our system to 8.1 and during that I have run accross a couple of odd issues. The following is something that I can explain and I think can be replicated.

The following code, which I agree is in error casuses a very odd issue...
if ed-end-loc-no = spaces or high-values or zero
move high-values to ed-end-loc-no.
else
move ws-end-loc-no to end-loc.

The last 2 lines were supposed to be deleted and I had missed that. However, the side effect I got from this unmatched else is the issue.

That error produces a "Memory access violation" and then causes an error on the in the code 20 or so lines later with an Internal error #45.

The kicker is this compeltely stops the compile, it does not check the remaining code.

Had the unmatched else and this internal error been the only issues I may have been able to figure it out, but I had several errors so it really was not obvious what was going on and the fact that the compiler stops in the middle of the code is confusing.

Is this a bug? ...or is there an explanation as to why the compiler would give up this way?
I think this should be reported to technical support. While source format constructs that differ from legal syntax may cause unexpected behavior, memory access violation is not one that should be.

[Migrated content. Thread originally posted on 13 February 2009]

We have been converting our system to 8.1 and during that I have run accross a couple of odd issues. The following is something that I can explain and I think can be replicated.

The following code, which I agree is in error casuses a very odd issue...
if ed-end-loc-no = spaces or high-values or zero
move high-values to ed-end-loc-no.
else
move ws-end-loc-no to end-loc.

The last 2 lines were supposed to be deleted and I had missed that. However, the side effect I got from this unmatched else is the issue.

That error produces a "Memory access violation" and then causes an error on the in the code 20 or so lines later with an Internal error #45.

The kicker is this compeltely stops the compile, it does not check the remaining code.

Had the unmatched else and this internal error been the only issues I may have been able to figure it out, but I had several errors so it really was not obvious what was going on and the fact that the compiler stops in the middle of the code is confusing.

Is this a bug? ...or is there an explanation as to why the compiler would give up this way?
I think this should be reported to technical support. While source format constructs that differ from legal syntax may cause unexpected behavior, memory access violation is not one that should be.

[Migrated content. Thread originally posted on 13 February 2009]

We have been converting our system to 8.1 and during that I have run accross a couple of odd issues. The following is something that I can explain and I think can be replicated.

The following code, which I agree is in error casuses a very odd issue...
if ed-end-loc-no = spaces or high-values or zero
move high-values to ed-end-loc-no.
else
move ws-end-loc-no to end-loc.

The last 2 lines were supposed to be deleted and I had missed that. However, the side effect I got from this unmatched else is the issue.

That error produces a "Memory access violation" and then causes an error on the in the code 20 or so lines later with an Internal error #45.

The kicker is this compeltely stops the compile, it does not check the remaining code.

Had the unmatched else and this internal error been the only issues I may have been able to figure it out, but I had several errors so it really was not obvious what was going on and the fact that the compiler stops in the middle of the code is confusing.

Is this a bug? ...or is there an explanation as to why the compiler would give up this way?
I have sent this to support.

As I explained to them, the biggest problem with this was that my focus changed to trying to figure out what I could have done to cause a memory violation instead of fixing syntax errors. Had I focused on the errors it noted I would have figured out and corrected the problem.

A compile causing a memory access violation error and stopping the compile process is just confusing.