the following testcase demonstrates warnings that can be irritating:
% cat gfcbug112.f90
logical :: ll = .false.
subroutine calc_W (N, M)
integer, intent(in) :: N, M
real :: T(N,M,M) ! Temporary array 1
real, allocatable :: W(:,:,:) ! Temporary array 2
W = 0
end subroutine calc_W
end module gfcbug112
% gfc-trunk -c -Wall -O gfcbug112.f90
gfcbug112.f90: In function ‘calc_w’:
gfcbug112.f90:5:0: warning: ‘w.dim.stride’ may be used uninitialized in this function [-Wuninitialized]
One can get really many of these in large modules...
This is the "standard" uninitialized warning for predicates. There are a few other bugs like this.