re PR lto/48042 (lto segfaults while building Qt 4.7.2 with -g -flto -fwhole-program)

2011-12-09  Richard Guenther  <rguenther@suse.de>

	PR lto/48042
	* tree.c (free_lang_data_in_decl): Remove freeing conditional
	on debuginfo level.

	* g++.dg/lto/pr48042_0.C: New testcase.

From-SVN: r182163
This commit is contained in:
Richard Guenther 2011-12-09 13:49:22 +00:00 committed by Richard Biener
parent 7543f91816
commit 4a33ac4a77
4 changed files with 25 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2011-12-09 Richard Guenther <rguenther@suse.de>
PR lto/48042
* tree.c (free_lang_data_in_decl): Remove freeing conditional
on debuginfo level.
2011-12-09 Joern Rennecke <joern.rennecke@embecosm.com>
PR middle-end/40154

View File

@ -1,3 +1,8 @@
2011-12-09 Richard Guenther <rguenther@suse.de>
PR lto/48042
* g++.dg/lto/pr48042_0.C: New testcase.
2011-12-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51482

View File

@ -0,0 +1,14 @@
// { dg-lto-do link }
// { dg-extra-ld-options "-r -nostdlib -g" }
class A {
virtual int x() = 0;
};
class B:public A {
int x();
};
int B::x() {
}

View File

@ -4600,11 +4600,6 @@ free_lang_data_in_decl (tree decl)
if (TREE_CODE (decl) == FIELD_DECL)
free_lang_data_in_one_sizepos (&DECL_FIELD_OFFSET (decl));
/* DECL_FCONTEXT is only used for debug info generation. */
if (TREE_CODE (decl) == FIELD_DECL
&& debug_info_level < DINFO_LEVEL_TERSE)
DECL_FCONTEXT (decl) = NULL_TREE;
if (TREE_CODE (decl) == FUNCTION_DECL)
{
if (gimple_has_body_p (decl))