关于分配和GFORTRAN警告的Fortran(重新)分配



一个简单的代码:

program main
integer, allocatable :: A(:,:)
integer              :: B(3,4)
B=1
A = B  !A will get allocated, with the same shape and bounds as B
end program main

用:gfortran-8 -std=f2008 -fcheck=all -Wall -Wextra -fbounds-check -fimplicit-none array.f90

编译上述代码

我得到以下警告:

Warning: ‘a.offset’ may be used uninitialized in this function Warning: ‘a.dim[0].lbound’ may be used uninitialized in this function Warning: ‘a.dim[0].ubound’ may be used uninitialized in this function [-Wmaybe-uninitialized]

有人知道为什么我会得到这些警告?

这是一个众所周知的gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77504,在许多重复的Bugzilla中都报告了我自己( - 查看其他化身的重复部分。

据我了解,编译器生成的实际代码应正确工作,这只是一个不正确的警告。正如史蒂夫(Steve(在评论中指出的那样,使用-Wno-maybe-uninitialized隐藏此警告。我也将其包含在我的构建脚本中。

相关内容

  • 没有找到相关文章

最新更新