If I assign a long integer to a short integer gfortran should warn about
possible loss of precision, such as g95 does.

Thanks,
Jonathan.

Full test case:
[EMAIL PROTECTED] ~/bugs/gfortran-4.3/ls_prec  $ gfortran-4.3 -Wall -pedantic 
-o test
test.f90 
[EMAIL PROTECTED] ~/bugs/gfortran-4.3/ls_prec  $ ./test 
 lvar =            8589934592
 svar =            0
 lvar =            1073741824
 svar =   1073741824
[EMAIL PROTECTED] ~/bugs/gfortran-4.3/ls_prec  $ gfortran-4.3 -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --program-suffix=-4.3
Thread model: posix
gcc version 4.3.0 (GCC)
[EMAIL PROTECTED] ~/bugs/gfortran-4.3/ls_prec  $ cat test.f90 
program test
   implicit none

   integer, parameter :: short = kind(0)
   integer, parameter :: long = selected_int_kind(18)

   integer(short) :: svar
   integer(long) :: lvar

   lvar = 2_long**33
   svar = lvar

   print *, "lvar = ", lvar
   print *, "svar = ", svar

   lvar = 2_long**30
   svar = lvar

   print *, "lvar = ", lvar
   print *, "svar = ", svar
end program


-- 
           Summary: Should warn about precision loss on integer conversions
                    in fortran
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: J dot Hogg at rl dot ac dot uk
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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

Reply via email to