http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53714
Bug #: 53714
Summary: false positive for -Wuninitialized
Classification: Unclassified
Product: gcc
Version: 4.7.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: [email protected]
ReportedBy: [email protected]
Fortran code:
subroutine test(na,nb,nc)
implicit none
integer, intent(in) :: na, nb, nc
integer ia, ib, ic, itest
do ia=1,na
do ib=1,nb
do ic=1,nc
itest=ic
enddo
enddo
enddo
do ic=1,nc
write (6,*) ic
enddo
end
/opt/gcc/4.7.1/bin/gfortran -c -O1 -Wuninitialized test.f
test.f: In function ‘test’:
test.f:4:0: warning: ‘ic’ may be used uninitialized in this function
[-Wuninitialized]
Not seen with zero optimization, but for -O1 and greater the compiler reports
that 'ic' may be uninitialized.
Removing the do-loop at the end of the subroutine removes the warning, even
though it seems unrelated to the location of the alleged uninitialized case.
Removing either of the ia or ib loops (which do nothing) also removes the
warning.
Seen with 4.7.1 built from source.