Фортран (пере) распределение по назначению и предупреждения gfortran - PullRequest
1 голос
/ 22 мая 2019

Простой код:

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]

Есть ли у кого-нибудь идея, почему я получил эти предупреждения?

1 Ответ

1 голос
/ 22 мая 2019

Это хорошо известная ошибка GCC https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77504, о которой сообщалось во многих дубликатах в bugzilla (даже мне) - см. Раздел Duplicates для других воплощений.

Насколько я понимаю, фактический код, сгенерированный компилятором, должен работать правильно, и это просто неверное предупреждение. Как отметил Стив в комментарии, используйте -Wno-maybe-uninitialized, чтобы скрыть это предупреждение. Я включил его и в мои скрипты сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...