fortran - 使用具有可分配长度的字符变量的 Fortran 程序在编译时总是显示警告
问题描述
我有以下代码使用具有可分配长度的字符变量。
PROGRAM testprog
IMPLICIT NONE
CHARACTER(LEN=5) :: param
CHARACTER(LEN=:), ALLOCATABLE :: val
param = '12455'
val = param
WRITE(*,*) val
END PROGRAM testprog
我使用 gfortran 版本 7.5 或 8.4 编译它并激活所有警告(选项 -Wall),我收到以下警告:
test.f90:6:0:
val = param
Warning: ‘.val’ may be used uninitialized in this function [-Wmaybe-uninitialized]
该程序有效。但是,我不明白为什么会出现此警告消息。
解决方案
这是一个编译器错误。它是众所周知的,但尚未在 GCC 中修复。您可以在https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91442查看报告
您可以忽略它,或者禁用“可能使用未初始化”警告-Wno-maybe-uninitialized
或使用优化(-O1 和更多)进行编译。
推荐阅读
- c++ - '错误 C0000: 语法错误,意外 $end at token "
"' 并且不确定如何进行 - python - Pandas:聚合后每个组的计数器列
- mongodb - 使用 mongo-spark-connector 连接到 mongodb 时出错
- react-native - 如何在卡片上方显示组件图像
- bash - 将所有输出重定向到 lolcat
- javascript - css 溢出:隐藏导致鼠标 layerX & layerY 位置不正确
- android - 在 recyclerview 的第一项滚动到屏幕外后显示工具栏
- javascript - 如何将 csv 转换为 json 并编写特定函数以使用 javascript 生成图形?
- android - Android Studio (AS) 和 Emulator 工作正常,但 AS 无法识别模拟器
- android - 为什么你必须在 RxJava 中的 CompositeDisposable 上处理一个东西?