首页 > 解决方案 > 使用具有可分配长度的字符变量的 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]

该程序有效。但是,我不明白为什么会出现此警告消息。

标签: fortrancompiler-warningsgfortran

解决方案


这是一个编译器错误。它是众所周知的,但尚未在 GCC 中修复。您可以在https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91442查看报告

您可以忽略它,或者禁用“可能使用未初始化”警告-Wno-maybe-uninitialized或使用优化(-O1 和更多)进行编译。


推荐阅读