Commit e20efbfb by Richard Guenther Committed by Richard Biener

re PR lto/44950 (ICE in dwarf2out_finish, at dwarf2out.c:22271)

2010-10-18  Richard Guenther  <rguenther@suse.de>

	PR lto/44950
	* tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
	also clear references to entries of it.

	* g++.dg/lto/20101015-2_0.C: New testcase.

From-SVN: r165629
parent ee1feb14
2010-10-18 Richard Guenther <rguenther@suse.de>
PR lto/44950
* tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
also clear references to entries of it.
2010-10-18 Andi Kleen <ak@linux.intel.com> 2010-10-18 Andi Kleen <ak@linux.intel.com>
PR other/43448 PR other/43448
2010-10-18 Richard Guenther <rguenther@suse.de>
PR lto/44950
* g++.dg/lto/20101015-2_0.C: New testcase.
2010-10-18 Jakub Jelinek <jakub@redhat.com> 2010-10-18 Jakub Jelinek <jakub@redhat.com>
PR middle-end/46019 PR middle-end/46019
......
// { dg-lto-do link }
// { dg-lto-options { { -flto } { -g -flto } } }
// { dg-extra-ld-options "-r -nostdlib" }
struct Base { ~Base (); };
void fun(void) { struct Deriv : Base { } x; }
...@@ -4510,6 +4510,15 @@ free_lang_data_in_decl (tree decl) ...@@ -4510,6 +4510,15 @@ free_lang_data_in_decl (tree decl)
/* DECL_SAVED_TREE holds the GENERIC representation for DECL. /* DECL_SAVED_TREE holds the GENERIC representation for DECL.
At this point, it is not needed anymore. */ At this point, it is not needed anymore. */
DECL_SAVED_TREE (decl) = NULL_TREE; DECL_SAVED_TREE (decl) = NULL_TREE;
/* Clear the abstract origin if it refers to a method. Otherwise
dwarf2out.c will ICE as we clear TYPE_METHODS and thus the
origin will not be output correctly. */
if (DECL_ABSTRACT_ORIGIN (decl)
&& DECL_CONTEXT (DECL_ABSTRACT_ORIGIN (decl))
&& RECORD_OR_UNION_TYPE_P
(DECL_CONTEXT (DECL_ABSTRACT_ORIGIN (decl))))
DECL_ABSTRACT_ORIGIN (decl) = NULL_TREE;
} }
else if (TREE_CODE (decl) == VAR_DECL) else if (TREE_CODE (decl) == VAR_DECL)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment