使用可分配长度的字符变量的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及更多(进行编译。

最新更新