This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/51650] [4.7 regression] LTO ICE in dwarf2out_finish, at dwarf2out.c:22501 while building libxul


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51650

--- Comment #4 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2011-12-22 12:51:08 UTC ---
(In reply to comment #3)
> In non-LTO mode we create the DIE for 'C' (which we do not create at all
> with -flto) via
> 
> #3  0x0000000000d54c57 in rest_of_type_compilation (type=0x7ffff5b8f3f0, 
>     toplev=1) at /space/rguenther/src/svn/trunk/gcc/passes.c:238
> 238       debug_hooks->type_decl (TYPE_STUB_DECL (type), !toplev);
> 
> we do not do something equivalent for LTO (but LTO expects to have those
> DIEs created lazily ...).  But dwarf2out isn't prepared to deal with
> this situation it seems :/
> 
> I'm not sure we want to add corresponding debug_hooks calls to the LTO
> machinery, but if, then one place to do that would be here:
> 
> Index: gcc/lto/lto.c
> ===================================================================
> --- gcc/lto/lto.c       (revision 182617)
> +++ gcc/lto/lto.c       (working copy)
> @@ -881,6 +881,8 @@ uniquify_nodes (struct data_in *data_in,
>         lto_register_var_decl_in_symtab (data_in, t);
>        else if (TREE_CODE (t) == FUNCTION_DECL && !DECL_BUILT_IN (t))
>         lto_register_function_decl_in_symtab (data_in, t);
> +      else if (!flag_wpa && TREE_CODE (t) == TYPE_DECL)
> +       debug_hooks->type_decl (t, DECL_FILE_SCOPE_P (t));
>        else if (TYPE_P (t) && !TYPE_CANONICAL (t))
>         TYPE_CANONICAL (t) = gimple_register_canonical_type (t);
>      }
> 
> but I'm not sure we won't confuse dwarf2out.c with the order we are
> calling type_decl () either (might be we start with T, and then the
> one for its context C).  The above patch fixes the reduced testcase at
> least.
> 
> Markus, can you give it a shot?

libxul still fails to build with the same error message (but there is only
one instance of this ICE now instead of three before your patch). 
Reducing...


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]