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