http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57871
Bug ID: 57871 Summary: gfortran -freal-4-real-16 gives wrong result for selected_real_kind(1) Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: john.harper at vuw dot ac.nz gfortran 4.8.1 -freal-4-real-16 gives real(16) kind with selected_real_kind(1) but it ought to give real(8) because that is the smallest decimal precision available with that compiler option. Same problem with -freal-4-real-10 giving real(10) instead of real(8). Evidence: cayley[~/Jfh] % cat testprecision.f90 implicit none integer,parameter:: p1 = selected_real_kind(1), dp = kind(1d0) print *,'kind(1.0_p1)',kind(1.0_p1),'precision(1.0_p1)',precision(1.0_p1) print *,'kind(1.0_dp)',kind(1.0_dp),'precision(1.0_dp)',precision(1.0_dp) end cayley[~/Jfh] % /local/scratch/gf/bin/gfortran -freal-4-real-16 -Wall -Wextra -fno-strict-aliasing -fwrapv testprecision.f90 cayley[~/Jfh] % ./a.out kind(1.0_p1) 16 precision(1.0_p1) 33 kind(1.0_dp) 8 precision(1.0_dp) 15 cayley[~/Jfh] % /local/scratch/gf/bin/gfortran -freal-4-real-10 -Wall -Wextra -fno-strict-aliasing -fwrapv testprecision.f90 cayley[~/Jfh] % ./a.out kind(1.0_p1) 10 precision(1.0_p1) 18 kind(1.0_dp) 8 precision(1.0_dp) 15 cayley[~/Jfh] % /local/scratch/gf/bin/gfortran -v Using built-in specs. COLLECT_GCC=/local/scratch/gf/bin/gfortran COLLECT_LTO_WRAPPER=/local/scratch/gf/libexec/gcc/x86_64-unknown-linux-gnu/4.8.1/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /local/scratch/gcc-4.8-20130530/configure --prefix=/local/scratch/gf --enable-languages=c,fortran --disable-libada --with-local-prefix=/local/scratch --with-gmp=/local/scratch Thread model: posix gcc version 4.8.1 20130530 (prerelease) (GCC) cayley[~/Jfh] %