From d96283a052cc3e9db9c7fc3e1cf3f85632611de2 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Thu, 18 Nov 2010 14:11:00 +0000 Subject: re PR lto/45089 (-Os -g -fwhopr dwarf2out ICE) 2010-11-18 Richard Guenther PR lto/45089 * dwarf2out.c (add_AT_die_ref): Work around LTO losing types when checking is not enabled. From-SVN: r166904 --- gcc/dwarf2out.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gcc/dwarf2out.c') diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 4eade28..ea3852e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -7362,6 +7362,15 @@ add_AT_die_ref (dw_die_ref die, enum dwarf_attribute attr_kind, dw_die_ref targ_ { dw_attr_node attr; +#ifdef ENABLE_CHECKING + gcc_assert (targ_die != NULL); +#else + /* With LTO we can end up trying to reference something we didn't create + a DIE for. Avoid crashing later on a NULL referenced DIE. */ + if (targ_die == NULL) + return; +#endif + attr.dw_attr = attr_kind; attr.dw_attr_val.val_class = dw_val_class_die_ref; attr.dw_attr_val.v.val_die_ref.die = targ_die; -- cgit v1.1