![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: We have recently started porting our Fortran based system from VAX 4705 to 7820 machines, and have upgraded compilers etc for Y2K compliance. Specifically, Fortran has gone from 5.7-133 to 6.5-188 with its host of whizzy features. However, due to a change in V6.3 of Fortran with respect to sign extension of untyped bit constants, large parts of the code which rely on, for example, a word (X) and byte constant (Y) both containing '84'X returning TRUE in a statement like (X .EQ. Y) a re now no longer working. My question: is there a known workaround for this "problem" (the release notes didn't indicate any), as the only alternatives we can see is to meticulously trawl through our source and overhaul all such occurrences (1.3 million lines !) or revert to the o ld (non-Y2K compliant) compiler. The Answer is : This change was made in the V6.3 compiler about five years ago. There is no workaround in the V6.5 compiler, but Compaq can provide you with a newer compiler that has an option to restore the old behavior. Please note that Compaq considers the old behavior to be a bug, and that if you migrate your application to Alpha, you will HAVE to fix your sources as there is no option in the Alpha compilers to get the old VAX behavior.
|