2011-12-09 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Dec 2011 13:49:22 +0000 (13:49 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Dec 2011 13:49:22 +0000 (13:49 +0000)
PR lto/48042
* tree.c (free_lang_data_in_decl): Remove freeing conditional
on debuginfo level.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182163 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/pr48042_0.C [new file with mode: 0644]
gcc/tree.c

index 8f56fbb..673dea4 100644 (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
index 68002fc..215465a 100644 (file)
@@ -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 (file)
index 0000000..00b3428
--- /dev/null
@@ -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() {
+}
+
index 4cadc7e..8f3ac2e 100644 (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))