https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79417
Bug ID: 79417 Summary: -Wconversion warns wrongly of real(16) to real(8) Product: gcc Version: 6.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: john.harper at vuw dot ac.nz Target Milestone: --- If array parameters are declared with both quad and double precision, the quad one triggers a -Wconversion warning but the program's output shows that the conversion did not happen. (The warning does not occur with a scalar quad parameter, nor if the double precision ones are commented out.) cayley[~/Jfh] % cat realtest2.f90 program tryit implicit none integer,parameter:: qp = selected_real_kind(30), dp = kind(1d0) real(qp),parameter:: q1 = 1, q23(1) = 2*q1/3 real(dp),parameter:: d1 = 1, d23(1) = real(q23,dp) print "(F42.36)",q23 print "(F24.18)",d23 end program tryit cayley[~/Jfh] % gfortran -Wconversion realtest2.f90 realtest2.f90:4:39: real(qp),parameter:: q1 = 1, q23(1) = 2*q1/3 1 Warning: Change of value in conversion from ‘REAL(16)’ to ‘REAL(8)’ at (1) [-Wconversion] cayley[~/Jfh] % ./a.out 0.666666666666666666666666666666666635 0.666666666666666630 cayley[~/Jfh] % cayley[~/Jfh] % gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release Thread model: posix gcc version 6.1.1 20160602 (GCC) cayley[~/Jfh] %