https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119106

            Bug ID: 119106
           Summary: Crash with character array constructor + implicit loop
                    + data from `parameter` variable
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: federico.perini at gmail dot com
  Target Milestone: ---

Created attachment 60649
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60649&action=edit
Test program

A runtime error is triggered with all versions of gfortran on this valid code: 

```
program char_param_array
implicit none
character, parameter :: p(5) = ['1','2','3','4','5']
character, save      :: n(5) = ['1','2','3','4','5']
integer :: i(10),j

i = 4
print *, [(n(i(j)),j=1,10)] ! OK
print *, [(p(i(j)),j=1,10)] ! runtime out-of-bounds error

end program char_param_array
```

A slightly more refined test case is found at https://godbolt.org/z/ccroE47eh
(Compiler Explorer).

A runtime error from `-fcheck=bounds` shows an invalid loop variable, only if: 
- Implicit loop inside an array constructor
- The character variable has the `parameter` attribute (no issue otherwise).

Best regards, 
Federico

Reply via email to