Overview Description: A very simple TEST.F code using D1MACH.F from SLATEC (to initialize machine constants) compiles correctly using GFORTRAN, but the produced executable gives nonsense results.
Steps to Reproduce: 1. Save the following program TEST.F and the routine D1MACH.F ************** program test implicit none real(8) d1mach write(6,*)1,d1mach(1) write(6,*)2,d1mach(2) write(6,*)3,d1mach(3) write(6,*)4,d1mach(4) write(6,*)5,d1mach(5) stop end program test ************** DOUBLE PRECISION FUNCTION D1MACH (I) C INTEGER SMALL(4) INTEGER LARGE(4) INTEGER RIGHT(4) INTEGER DIVER(4) INTEGER LOG10(4) C DOUBLE PRECISION DMACH(5) SAVE DMACH EQUIVALENCE (DMACH(1),SMALL(1)) EQUIVALENCE (DMACH(2),LARGE(1)) EQUIVALENCE (DMACH(3),RIGHT(1)) EQUIVALENCE (DMACH(4),DIVER(1)) EQUIVALENCE (DMACH(5),LOG10(1)) C C MACHINE CONSTANTS FOR THE INTEL i860 C DATA DMACH(1) / Z'0010000000000000' / DATA DMACH(2) / Z'7FEFFFFFFFFFFFFF' / DATA DMACH(3) / Z'3CA0000000000000' / DATA DMACH(4) / Z'3CB0000000000000' / DATA DMACH(5) / Z'3FD34413509F79FF' / C***FIRST EXECUTABLE STATEMENT D1MACH D1MACH = DMACH(I) RETURN C END ************** 2. Compile with the command gfortran test.f d1mach.f -o test.exe 3. Run ./test.exe Actual results: ./test.exe 1 4503599627370496.0 2 9.21886843722740531E+018 3 4.36849163854938112E+018 4 4.37299523817675162E+018 5 4.59909449422310451E+018 Expected results: ./test.exe 1 2.2250738585072014E-308 2 1.7976931348623157E+308 3 1.1102230246251565E-16 4 2.220446049250313E-16 5 0.3010299956639812 Build date and platform: Dec.05.2007, WinXP (cygwin environment) Additional information: 1. gfortran --version GNU Fortran (GCC) 4.3.0 20071017 (experimental) [trunk revision 129419] 2. gcc --version gcc.exe (GCC) 4.3.0 20071017 (experimental) [trunk revision 129419] -- Summary: gfortran compiles SLATEC library, but the executable fails Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fabio dot subba at polito dot it http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34345