首页 > 解决方案 > gfortran 无法使用 -Wmaybe-uninitialize 捕获明显未初始化的变量

问题描述

似乎 gfortran 的 -Wmaybe-uninitialize 选项不够聪明,无法捕捉明显未初始化的变量。例如:

program main
implicit none
integer:: i,j
j=i
write(*,*) i
end program

$ gfortran -Wall -Wmaybe-未初始化的 main.f90

没有警告。但是在注释掉 write 语句时,gfortran 会给出正确的警告信息。这是微妙的。

标签: fortrangfortran

解决方案


或者-Wall使用-Wuninitializedgfortran 7.2.0 生成警告。-Wall -Wmaybe-uninitialized也警告,但仅-Wmaybe-uninitialized是不够的。变量在这里有一个明显的未初始化字符。

考虑将 gfortran 更新到更新的版本。


推荐阅读