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

            Bug ID: 93251
           Summary: Valid code rejected: Shape of array depends on
                    parameter array
           Product: gcc
           Version: 9.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: m.diehl at mpie dot de
  Target Milestone: ---

Created attachment 47647
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47647&action=edit
source code

The following code for array parameters does not compile even though it seems
valid (shape/size known at compile time)

program initialize_shape_parameter

  integer, parameter               :: x = 2
  integer, parameter, dimension(1) :: y = [2]

  real, dimension(x,x),       parameter :: &
       ok1 = reshape([1.,2.,3.,4.],shape(ok1))

  real, dimension(y(1),y(1)), parameter :: &
       ok2 = reshape([1.,2.,3.,4.],[y(1),y(1)])

  real, dimension(y(1),y(1)), parameter :: &
    not_ok = reshape([1.,2.,3.,4.],shape(not_ok))  !<== ERROR

end program initialize_shape_parameter

Error: PARAMETER ‘not_ok’ is used at (1) before its definition is complete

Reply via email to