似乎gfortran的-Wmaybe-uninitialize选项不够聪明,无法捕获明显的未初始化变量。例如:
program main
implicit none
integer:: i,j
j=i
write(*,*) i
end program
$ gfortran -Wall -Wmaybe-uninitialized main.f90
不发出警告。但是在注释掉写语句时,gfortran会给出正确的警告信息。这很微妙。
答案 0 :(得分:2)
-Wall
或-Wuninitialized
都会使用gfortran 7.2.0生成警告。 -Wall -Wmaybe-uninitialized
也会发出警告,但仅-Wmaybe-uninitialized
是不够的。该变量在此处具有明显的未初始化字符。
考虑将gfortran更新到最新版本。