[Bug fortran/92050] internal compiler error: in gfc_conv_procedure_call
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 10 16:59:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92050
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
CC| |kargl at gcc dot gnu.org,
| |vehre at gcc dot gnu.org
Target Milestone|--- |10.0
--- Comment #1 from kargl at gcc dot gnu.org ---
The ICE is caused by an assert() in the code. Lines 7020-7035 in
trans-expr.c are the following:
if (args && args->expr && args->expr->ts.type == BT_CLASS
&& sym->ts.type == BT_CLASS && result != NULL_TREE && DECL_P (result)
&& !GFC_CLASS_TYPE_P (TREE_TYPE (result)))
{
gfc_se parmse;
gfc_expr *class_expr = gfc_find_and_cut_at_last_class_ref (args->expr);
gfc_init_se (&parmse, NULL);
gfc_conv_expr (&parmse, class_expr);
if (!DECL_LANG_SPECIFIC (result))
gfc_allocate_lang_decl (result);
GFC_DECL_SAVED_DESCRIPTOR (result) = parmse.expr;
gfc_free_expr (class_expr);
// gcc_assert (parmse.pre.head == NULL_TREE
// && parmse.post.head == NULL_TREE);
}
Commenting out the assert allows the code to compile with
-fcheck=bounds. The code was added in revision 241439 by
Andre Vehreschild on 2016-10-22. Andre, the assert be
removed or hidden behind flag_bounds_check?
More information about the Gcc-bugs
mailing list