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

--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-17 
20:30:19 UTC ---
Confirmed.  Apparently DECL_ABSTRACT_ORIGIN is still NULL at the point where
Richard changed it and DECL_EXTERNAL is being set.  It is set during:
#0  tree_function_versioning (old_decl=0x7ffff1d40300, new_decl=0x7ffff1d47000,
tree_map=0x7ffff1d524b0, update_clones=1 '\001', 
    args_to_skip=0x7ffff1d1be60, blocks_to_copy=0x0, new_entry=0x0) at
../../gcc/tree-inline.c:5058
#1  0x0000000002ab2fb1 in cgraph_materialize_clone (node=0x7ffff1d61000) at
../../gcc/cgraphunit.c:2175
#2  0x0000000002ab3901 in cgraph_materialize_all_clones () at
../../gcc/cgraphunit.c:2372
#3  0x0000000002ab2356 in cgraph_optimize () at ../../gcc/cgraphunit.c:1889
#4  0x00000000004ee63b in lto_main () at ../../gcc/lto/lto.c:2469

So, either tree_function_versioning needs to be changed not to set
DECL_ABSTRACT_ORIGIN for DECL_EXTERNAL new_decls, or lto needs to fix it up
somewhere else, or we need to go with one of the proposed dwarf2out.c changes.

Reply via email to