https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118710
kargls at comcast dot net changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargls at comcast dot net
--- Comment #1 from kargls at comcast dot net ---
Thanks again for the report.
The ICE is caused by a NULL pointer dereference in trans-array.cc at
line 6135.
if (expr->ts.type == BT_CHARACTER
&& expr->ts.deferred
&& VAR_P (expr->ts.u.cl->backend_decl))
{
Here, expr->ts.u.cl->backend_decl is NULL. If I change the code
to protect against the dereference
if (expr->ts.type == BT_CHARACTER
&& expr->ts.deferred
&& expr->ts.u.cl->backend_decl
&& VAR_P (expr->ts.u.cl->backend_decl))
{
and rebuild gfortran, it can then compile your code. I don't know
if this will produce correct code.
It turns output the symtree for the expression has a backend_decl.
If I alter the code to
if (expr->ts.type == BT_CHARACTER
&& expr->ts.deferred
&& VAR_P (expr->symtree->n.sym->backend_decl))
{
then the new gfortran can also build your code.