https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79165
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Index: gcc/fortran/trans-expr.c =================================================================== --- gcc/fortran/trans-expr.c (revision 244586) +++ gcc/fortran/trans-expr.c (revision 244587) @@ -1839,11 +1839,10 @@ gfc_get_tree_for_caf_expr (gfc_expr *exp } /* Make sure the backend_decl is present before accessing it. */ - if (expr->symtree->n.sym->backend_decl == NULL_TREE) - expr->symtree->n.sym->backend_decl - = gfc_get_symbol_decl (expr->symtree->n.sym); - caf_decl = expr->symtree->n.sym->backend_decl; - gcc_assert (caf_decl); + caf_decl = expr->symtree->n.sym->backend_decl == NULL_TREE + ? gfc_get_symbol_decl (expr->symtree->n.sym) + : expr->symtree->n.sym->backend_decl; + if (expr->symtree->n.sym->ts.type == BT_CLASS) { if (expr->ref && expr->ref->type == REF_ARRAY) removes setting expr->symtree->n.sym->backend_decl?