There is a lot of noise generated with -Wconversion:

program gfcbug100
  implicit none
  integer, parameter :: sp = kind (1.0)
  integer, parameter :: dp = kind (1.d0)
  real(sp)     :: s
  real(dp)     :: d
  complex(dp)  :: z

  s = 0         ! Warn if you are very picky
  d = s         ! No reason for a warning
  z = (0, 1)    ! Many warnings for this one!
end program gfcbug100

Which gives:

gfcbug100.f90:11.8:

  z = (0, 1)    ! Many warnings for this one!
        1
Warning: Conversion from INTEGER(4) to REAL(4) at (1)
gfcbug100.f90:11.11:

  z = (0, 1)    ! Many warnings for this one!
           1
Warning: Conversion from INTEGER(4) to REAL(4) at (1)
gfcbug100.f90:9.6:

  s = 0         ! Warn if you are very picky
      1
Warning: Conversion from INTEGER(4) to REAL(4) at (1)
gfcbug100.f90:10.6:

  d = s         ! No reason for a warning
      1
Warning: Conversion from REAL(4) to REAL(8) at (1)
gfcbug100.f90:11.6:

  z = (0, 1)    ! Many warnings for this one!
      1
Warning: Conversion from COMPLEX(4) to COMPLEX(8) at (1)


It would be nice if the promotion kind=4 to kind=8 would never
produce a warning in cases like the above as it is always exact.

Also, promoting integers to reals is often possible without any
loss of accuracy, this is certainly the case for 0 and 1 ;-)

The complex literal is particularly funny, generating 3 warnings.
This is at least one too much.  (0,1) gets promoted by default
to (0.0,1.0) as required by the standard, and the complex conversion
is exact.

Any attempt at reducing the above noise is greatly appreciated.


-- 
           Summary: Too much noise with -Wconversion
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: anlauf at gmx dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42809

Reply via email to