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

Paul Thomas <pault at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pault at gcc dot gnu.org

--- Comment #21 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Harald Anlauf from comment #20)
> The ICE-on-invalid is resolved, but we now have an accepts-invalid for:
> 
>   integer, parameter :: y(1,2) = (x(1)%a(m,1)) ! invalid, not detected
> 
> I assume that the ref chain has not been checked for non-constant stuff.
> 
> There's no need to rush this now.  It can wait after 16.1 release,
> but we should not forget about it.

Also, removal of the parentheses in the initialization expression yields the
output:
    6 |    integer :: y(1,2) = x(b)%a
      |                         1
Warning: Legacy Extension: REAL array index at (1)
           4           4

ifx, on the other hand, provides something rather more illuminating:

error #6592: This symbol must be a defined parameter, an enumerator, or an
argument of an inquiry function that evaluates to a compile-time constant.  
[B]
   integer :: y(1,2) = x(b)%a

Paul

Reply via email to