On Fri, Sep 19, 2014 at 8:55 PM, Jan Hubicka <hubi...@ucw.cz> wrote: > Hi, > this patch fixes ICE by avoiding mangling of types with variadic size (those > are > not really supported). Bootstrapped/regtested x86_64-linux, tested with > libreoffice, > comitted.
Hmm, but how do global vars end up having variadic type? Isn't the bug that you are ending up with some local entity here? Richard. > PR lto/63286 > * tree.c (need_assembler_name_p): Do not mangle variadic types. > Index: tree.c > =================================================================== > --- tree.c (revision 215328) > +++ tree.c (working copy) > @@ -5003,6 +5003,7 @@ need_assembler_name_p (tree decl) > && decl == TYPE_NAME (TREE_TYPE (decl)) > && !is_lang_specific (TREE_TYPE (decl)) > && AGGREGATE_TYPE_P (TREE_TYPE (decl)) > + && !variably_modified_type_p (TREE_TYPE (decl), NULL_TREE) > && !type_in_anonymous_namespace_p (TREE_TYPE (decl))) > return !DECL_ASSEMBLER_NAME_SET_P (decl); > /* Only FUNCTION_DECLs and VAR_DECLs are considered. */