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