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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2023-01-23
           Keywords|ice-on-invalid-code         |ice-on-valid-code,
                   |                            |rejects-valid
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
                 CC|                            |anlauf at gcc dot gnu.org

--- Comment #1 from anlauf at gcc dot gnu.org ---
First, I think the code is actually valid, adjusting keywords.

Furthermore, there are two issues here, an underlying one, namely that
we reject the following:

program p
  real, parameter :: n = 2
  real :: a(1,(n),2)
end

pr108501.f90:3:14:

    3 |   real :: a(1,(n),2)
      |              1
Error: Expression at (1) must be of INTEGER type, found REAL
pr108501.f90:3:20:

    3 |   real :: a(1,(n),2)
      |                    1
Error: The module or main program array 'a' at (1) must have constant shape

This is already present in gcc-7, so although it is a nasty bug, it's not
a regression.

The other issue is likely exposed by this misbehavior, leading to an ICE
when checking the argument of the call in get_expr_storage_size.
This issue is also present in all versions down to at least gcc-7,
so arguably not really a regression.

I have a patch for the latter.

Reply via email to