https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66394
--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
Situation with all branches younger than 4.8 is:
4.8-branch: a bit different issue is touched and fixed in r208454, I'm going to
test a backport from 4.9 branch
4.9-branch - master: in r201468 Honza added streaming of abstract origin so
that it's going to improved debug info. Unfortunately, as -fmerge-all-constants
is passed, varpool_node::get (DECL_ABSTRACT_ORIGIN (vnode->decl)) can be equal
to NULL.
I'm going to test following patch:
diff --cc gcc/lto-cgraph.c
index b5fd83e,07eebfc..0000000
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@@ -942,8 -807,8 +942,10 @@@ compute_ltrans_boundary (lto_symtab_enc
if (DECL_ABSTRACT_ORIGIN (vnode->decl))
{
varpool_node *origin_node
- = varpool_node_for_decl (DECL_ABSTRACT_ORIGIN (vnode->decl));
- lto_set_symtab_encoder_in_partition (encoder, origin_node);
+ = varpool_node::get (DECL_ABSTRACT_ORIGIN (vnode->decl));
- lto_set_symtab_encoder_in_partition (encoder, origin_node);
++
++ if (origin_node)
++ lto_set_symtab_encoder_in_partition (encoder, origin_node);
}
}
/* Pickle in also the initializer of all referenced readonly variables
Thanks,
Martin