[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