From 4a33ac4a77ac2c57d47017043e1fdc2f13fb3103 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Fri, 9 Dec 2011 13:49:22 +0000 Subject: [PATCH] re PR lto/48042 (lto segfaults while building Qt 4.7.2 with -g -flto -fwhole-program) 2011-12-09 Richard Guenther 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 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/lto/pr48042_0.C | 14 ++++++++++++++ gcc/tree.c | 5 ----- 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 gcc/testsuite/g++.dg/lto/pr48042_0.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f56fbb9ba6..673dea47e0b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-12-09 Richard Guenther + + PR lto/48042 + * tree.c (free_lang_data_in_decl): Remove freeing conditional + on debuginfo level. + 2011-12-09 Joern Rennecke PR middle-end/40154 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 68002fcd5c8..215465a2175 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-12-09 Richard Guenther + + PR lto/48042 + * g++.dg/lto/pr48042_0.C: New testcase. + 2011-12-09 Richard Guenther PR tree-optimization/51482 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 00000000000..00b3428e9f1 --- /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() { +} + diff --git a/gcc/tree.c b/gcc/tree.c index 4cadc7ef8c4..8f3ac2ee628 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -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)) -- 2.30.2