[Bug lto/88112] [9 regression] ICE in lto1: TYPE_FIELDS defined in incomplete type
ebotcazou at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 20 22:46:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88112
--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Index: gcc/tree.c
> ===================================================================
> --- gcc/tree.c (revision 266308)
> +++ gcc/tree.c (working copy)
> @@ -5260,7 +5260,7 @@ free_lang_data_in_one_sizepos (tree *exp
> Note this should only happen for abstract copies so setting sizes
> to NULL is OK (but we cannot easily assert this). */
> else if (expr && !is_gimple_val (expr))
> - *expr_p = NULL_TREE;
> + *expr_p = build0 (PLACEHOLDER_EXPR, TREE_TYPE (expr));
> }
>
>
> fixes the ICE but not sure if that's good. Setting to size_zero_node
> also works (so much for "proper" type checking ...). Maybe it's better
> to adjust the type-checker somehow?
The C++ front-end should be fixed instead, i.e. it should gimplify all the size
expressions (like the Ada front-end does).
More information about the Gcc-bugs
mailing list