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

           Summary: be used uninitialized in this function
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: jsz...@yeah.net


Hi there,

With the example code below, gfortran (4.5.0 and 4.6.0) give a strange warning
message with -O2 flag:

> gfortran -Wall -O2 -c readmo.f90
readmo.f90: In function 'readmo':
readmo.f90:4:0: warning: 'convrt' may be used uninitialized in this function

When with -O0, the warning message disappear.

In fact, the array 'lopt' is not initialized in the code, however, the compiler
does not give warning about that. I try the same code with g95, it give a
warning message 'used but not set' about 'lopt'.

Any suggestions or comments? Thanks in advance!

Regards,
Jinsong



subroutine readmo()
!!!! example code readmo.f90 !!!!

   implicit none
   real :: convrt
   integer :: i, iflag, j
   integer, dimension(3,5) :: lopt

   iflag = 0
   do i = 1, 5
      do j = 1, 3
         if ( lopt(j,i) < 0 ) then
            convrt = 1.0
            if ( j > 1 ) convrt = 2.0
            iflag = 1
         endif
      enddo
   enddo
   if ( iflag /= 0 ) then
      do i = 1, 5
         write(6,*) i*convrt
      enddo
   endif

end subroutine readmo

Reply via email to