https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98458
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|PRINT the array constructed |ICE in
|from implied do-loop throw |gfc_conv_array_initializer
|ICE |due to array expressions
| |within implied do-loop
--- Comment #7 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Steve Kargl from comment #6)
Hi Steve,
I didn't check for any new postings when I attached my version of the patch.
Apologies for treading on your toes.... again :-)
> PRINT has nothing to do with the problem. I simply
> have no interest in fixing the changed and now misleading
> subject line. I've been asked to stop.
Who asked you to stop? Anyway, I have added a slightly more informative subject
line.
>
> My proposed patch fixes the issue in one spot. Paul's
> patch fixes potentially many spots. Unfortunately, the
> handling of implied do-loops is done in an ad hoc fashion,
> and is complicated by the potential problem of exhausting
> the stack.
I like your use of gfc_reduce_init_expr since it also does a type check. Note
though that it resets gfc_reduce_init_expr and so it needs to be set once again
after the call.
I had totally forgotten about the 'fatal' flag needing to be set in the call to
gfc_expand_constructor to avoid stack exhaustion. I had to rediscover it
experimentally.
A combined patch is being regtested now.
Cheers
Paul