使用可分配长度的字符变量的Fortran程序在编译时总是显示一个警告。

问题描述 投票:0回答:1

我有以下代码,它使用了一个可分配长度的字符变量。

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]

程序可以运行。然而,我不明白为什么会出现这个警告信息。

fortran compiler-warnings gfortran
1个回答
2
投票

这是一个编译器错误。这是一个众所周知的错误,但在GCC中还没有被修复。你可以在以下地方看到报告 https:/gcc.gnu.orgbugzillashow_bug.cgi?id=91442。

你可以忽略它,或者用以下方法禁用 "可能被用于未初始化 "的警告 -Wno-maybe-uninitialized 或编译时进行优化(-O1及以上)。

© www.soinside.com 2019 - 2024. All rights reserved.