This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
be used uninitialized in this function
- From: Jinsong Zhao <jszhao at yeah dot net>
- To: fortran at gcc dot gnu dot org
- Date: Sun, 16 Jan 2011 00:12:48 +0800
- Subject: be used uninitialized in this function
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 to compile the same
code with g95. It give the same message, with additional 'used but not
set' warning 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