PGF90-F-0000-Internal compiler error. index overflow

Hi,

I have a user that has unmodified code from several years ago. This code compiled without error on the PGI 6.0 suite (pgf90). Now that we have the 7.1-x release, it aborts abruptly:

[user@linux]$ pgf90 -Mfree -c wave.f
PGF90-F-0000-Internal compiler error. index overflow 2 (wave.f: 1292)
PGF90/x86 Linux 7.1-6: compilation aborted
[user@linux]$

Keeping in mind that I’m a sysadmin and not a regular user of the compiler suite, how can I help my user track down this problem?

I’m trying to help the user stay with our 7.1-x release (he wants to go back to the 6.x suite).

Thanks,
Phil

Hi,

This could be a compiler bug. Can you post a code of wave.f here? If not, please send a problem to trs@pgroup.com.

Thank you,
Hongyon

Hongyon,

Yes, I have emailed the wave.f file and *.mod and *.inc files to trs@pgroup.com. I would post it here but it is > 1000 lines long.

Dave Borer is helping me out. He has the tar file I sent.

Thanks,
Phil

I am interested to know if this problem was resolved in some way. I am compiling the same code with pgi (release 10.5) and see an error that is almost identical with the same subroutine:
PGF90-F-0000-Internal compiler error. index overflow 4 (wave.f: 2054)
PGF90/x86 Linux 10.5-0: compilation aborted

I would appreciate any comments about the issue.

Hi,

Assuming you have exactly the same code and use the same compile options.

It was determined that it only occurs with our 32-bit code generator for CPUs older than the Pentium 4. It does not occur for a -tp value >= p7.

If the error occurs when compiling the function GEN_INDEX.
Here are some suggestions to work-around the bug.

  • compile the whole file -O0
  • put routine GEN_INDEX in its own file and compile it -O0
  • add -fpic when compiling the entire file
  • put routine GEN_INDEX in its own file and add -fpic


    Actually compile with -tpk8-32 should be just fine without having to do all those.

Let me know if what mentioned above is not your case.

Hongyon

hongyon,

Yes, it is the exact same code and your suggestions work! Thank you!