https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104908
Bug ID: 104908 Summary: gfortran 11/trunk regression: incorrect Fortran out-of-bound runtime error. Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: a.shahmoradi at gmail dot com Target Milestone: --- The following code appears to be standard-conforming, but gfortran throws a runtime error with the flag `-check=bounds`, ``` program test type vec integer :: x(3) end type type(vec) :: v(2) call sub(v) contains subroutine sub (v) class(vec), intent(in) :: v(:) integer :: k, q(3) q = [ (v(1)%x(k), k = 1, 3) ] ! <-- fails here end subroutine end program ``` Here is the error message, ``` At line 19 of file /app/example.f90 Fortran runtime error: Index '3' of dimension 1 of array 'v%_data%x' above upper bound of 2 ``` This is a gfortran-11 regression since the code is functional with gfortran-10 with the same compile flags. It can be tested here with different versions of gfortran: https://godbolt.org/z/K6chcYE5e This issue was raised in a StackOverflow question: https://stackoverflow.com/questions/71441100/class-dummy-argument-for-array-of-custom-types-stuck-on-fcheck-bounds I am only reporting it to the GNU Bugzilla.