When testing our code with 4.5.2 the program compiles no problem, but on execution it exits with 'Illegal instruction' error message. The same code works fine with 4.5.1 compiler on the same machine. Here is a cut down of the (Fortran) code (test.f90):
INTEGER, PARAMETER :: i=20
END MODULE test_mod
compiled with simply:
The program built with 4.5.1 gives the expected '20' when run, whereas with 4.5.2 'Illegal instruction' is given. Writing a hard-coded character string works, so I think the issue is referencing the variable from the module.
The compilers are both the SLES 11 rpm versions, i.e.:
and both are installed on a 64-bit machine running openSUSE 12.1 (actually I've reproduced this on more than 1 machine). Any advice about how to fix this would be greatly appreciated.