diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-09 13:49:22 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-09 13:49:22 +0000 |
commit | 4a33ac4a77ac2c57d47017043e1fdc2f13fb3103 (patch) | |
tree | 06a4f607822c889d5798d6050ff94c0c9ceec399 /gcc | |
parent | 7543f91816ec7402e501d2afa09d7f18ac8bee61 (diff) | |
download | gcc-4a33ac4a77ac2c57d47017043e1fdc2f13fb3103.zip gcc-4a33ac4a77ac2c57d47017043e1fdc2f13fb3103.tar.gz gcc-4a33ac4a77ac2c57d47017043e1fdc2f13fb3103.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/pr48042_0.C | 14 | ||||
-rw-r--r-- | gcc/tree.c | 5 |
4 files changed, 25 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f56fbb..673dea4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 68002fc..215465a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 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 * g++.dg/torture/pr51482.C: New testcase. diff --git a/gcc/testsuite/g++.dg/lto/pr48042_0.C b/gcc/testsuite/g++.dg/lto/pr48042_0.C new file mode 100644 index 0000000..00b3428 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr48042_0.C @@ -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() { +} + @@ -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)) |