fortran - 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 会给出正确的警告信息。这是微妙的。
解决方案
或者-Wall
使用-Wuninitialized
gfortran 7.2.0 生成警告。-Wall -Wmaybe-uninitialized
也警告,但仅-Wmaybe-uninitialized
是不够的。变量在这里有一个明显的未初始化字符。
考虑将 gfortran 更新到更新的版本。
推荐阅读
- angular - 推送插件错误字符串资源 ID #0x0 出错
- javascript - 如何重置角度2中的输入值
- javascript - 如何修复“未捕获的类型错误:无法设置未定义的属性 '0'”
- ssl - 如何使用码头设置 2 路 SSL 身份验证连接
- go - 抓取数据时连接被拒绝
- android - 无法使用 Volley 解析 JSON 对象
- magento - Magento 网站禁用或删除“.maintenance.flag”文件的永久解决方案?
- python - Django 模型对象何时初始化?
- javascript - 无法读取未定义的属性“目标”。我想附加一个特定的元素,但它给了我错误
- unit-testing - 断言在带有参数的 JavaScript 函数的 MarkLogic 单元测试中引发错误