summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-24 11:01:14 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-24 11:01:14 +0000
commit127bbb781aa90ea71a156bbe089ce82037df36c6 (patch)
treee014a72b390a0bcb4621b4fcdf7b3bf064f76429
parent0ed0ef698c866882fe1f78a8f930e00d4b5cbadd (diff)
downloadgcc-127bbb781aa90ea71a156bbe089ce82037df36c6.tar.gz
2015-09-24 Richard Biener <rguenther@suse.de>
PR lto/67699 * lto-cgraph.c (compute_ltrans_boundary): Do not stream abstract origins. * g++.dg/pr67699.C: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228084 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lto-cgraph.c15
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/pr67699.C8
4 files changed, 19 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7bc8e91855b..ed7224fa3a7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-09-24 Richard Biener <rguenther@suse.de>
+
+ PR lto/67699
+ * lto-cgraph.c (compute_ltrans_boundary): Do not stream
+ abstract origins.
+
2015-09-24 Thomas Schwinge <thomas@codesourcery.com>
* tree-object-size.c (plus_stmt_object_size)
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index d70537dbd07..51f31c8cd2b 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -895,14 +895,6 @@ compute_ltrans_boundary (lto_symtab_encoder_t in_encoder)
add_node_to (encoder, node, true);
lto_set_symtab_encoder_in_partition (encoder, node);
create_references (encoder, node);
- /* For proper debug info, we need to ship the origins, too. */
- if (DECL_ABSTRACT_ORIGIN (node->decl))
- {
- struct cgraph_node *origin_node
- = cgraph_node::get_create (DECL_ABSTRACT_ORIGIN (node->decl));
- origin_node->used_as_abstract_origin = true;
- add_node_to (encoder, origin_node, true);
- }
}
for (lsei = lsei_start_variable_in_partition (in_encoder);
!lsei_end_p (lsei); lsei_next_variable_in_partition (&lsei))
@@ -914,13 +906,6 @@ compute_ltrans_boundary (lto_symtab_encoder_t in_encoder)
lto_set_symtab_encoder_in_partition (encoder, vnode);
lto_set_symtab_encoder_encode_initializer (encoder, vnode);
create_references (encoder, vnode);
- /* For proper debug info, we need to ship the origins, too. */
- if (DECL_ABSTRACT_ORIGIN (vnode->decl))
- {
- varpool_node *origin_node
- = varpool_node::get (DECL_ABSTRACT_ORIGIN (vnode->decl));
- lto_set_symtab_encoder_in_partition (encoder, origin_node);
- }
}
/* Pickle in also the initializer of all referenced readonly variables
to help folding. Constant pool variables are not shared, so we must
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fe4f67f7000..02dc90256e8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-09-24 Richard Biener <rguenther@suse.de>
+
+ PR lto/67699
+ * g++.dg/pr67699.C: New testcase.
+
2015-09-24 Richard Earnshaw <rearnsha@arm.com>
PR libgcc/67624
diff --git a/gcc/testsuite/g++.dg/pr67699.C b/gcc/testsuite/g++.dg/pr67699.C
new file mode 100644
index 00000000000..c9ff591939a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr67699.C
@@ -0,0 +1,8 @@
+// { dg-do compile }
+// { dg-require-effective-target lto }
+// { dg-options "-flto" }
+
+template <class T> class foo {
+ foo() { int const bar[2] = {1, 1}; }
+};
+template class foo<int>;