Предупреждение о границах массива в gfortran - PullRequest
3 голосов
/ 07 ноября 2019

Когда я компилирую тестовую программу на Фортране:

PROGRAM character_warning

  CHARACTER(len=16) :: word

  word = 'hi'
  WRITE(*,*) word

END PROGRAM character_warning

с gfortran -Warray-bounds -O2 character_warning.f90, я получаю предупреждение:

character_warning.f90:5:0:

    5 |   word = 'hi'
      | 
Warning: array subscript 0 is outside array bounds of 'character(kind=1)[1:16]' [-Warray-bounds]
character_warning.f90:3:0:

    3 |   CHARACTER(len=16) :: word
      | 
note: while referencing 'word'

Это только начиналось, когда я обновлялся до gfortran9 сgfortran8. Я не понимаю, почему выдается предупреждение, и хотел бы удалить его, чтобы мой сборник был чистым. Предупреждение исчезнет, ​​если я уменьшу оптимизацию до -O1, а также если я изменю len=16 на len=3. Кто-нибудь знает, почему это дает предупреждение и как от него избавиться?

Точный гфортран, который я использую, это GNU Fortran (Homebrew GCC 9.2.0_1) 9.2.0

...