aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-12-12 08:37:22 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-12-12 08:37:22 +0000
commit7e529795d0c6a2c9441bb233a140e4b8ec2cf521 (patch)
tree6f5a02687aca26e6c6406af5bcc191022965ecf2
parent0a5a95f20443fb1677300138e00249ea86c894eb (diff)
downloadgcc-7e529795d0c6a2c9441bb233a140e4b8ec2cf521.zip
gcc-7e529795d0c6a2c9441bb233a140e4b8ec2cf521.tar.gz
gcc-7e529795d0c6a2c9441bb233a140e4b8ec2cf521.tar.bz2
re PR debug/51262 (ICE: SIGSEGV in primary_template_instantiation_p (pt.c:2874) with -flto -g)
2011-12-12 Richard Guenther <rguenther@suse.de> PR lto/51262 * tree.c (cp_free_lang_data): No longer clear anonymous names. * g++.dg/opt/pr51262.C: New testcase. From-SVN: r182221
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/tree.c11
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/opt/pr51262.C21
4 files changed, 31 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8090030..1ba9f34 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-12 Richard Guenther <rguenther@suse.de>
+
+ PR lto/51262
+ * tree.c (cp_free_lang_data): No longer clear anonymous names.
+
2011-12-09 Jason Merrill <jason@redhat.com>
PR c++/51151
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 8d179d8..7899397 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -3479,17 +3479,6 @@ cp_free_lang_data (tree t)
DECL_EXTERNAL (t) = 1;
TREE_STATIC (t) = 0;
}
- if (CP_AGGREGATE_TYPE_P (t)
- && TYPE_NAME (t))
- {
- tree name = TYPE_NAME (t);
- if (TREE_CODE (name) == TYPE_DECL)
- name = DECL_NAME (name);
- /* Drop anonymous names. */
- if (name != NULL_TREE
- && ANON_AGGRNAME_P (name))
- TYPE_NAME (t) = NULL_TREE;
- }
if (TREE_CODE (t) == NAMESPACE_DECL)
{
/* The list of users of a namespace isn't useful for the middle-end
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba6d3c4..1d78adf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-12 Richard Guenther <rguenther@suse.de>
+
+ PR lto/51262
+ * g++.dg/opt/pr51262.C: New testcase.
+
2011-12-12 Revital Eres <revital.eres@linaro.org>
PR rtl-optimization/47013
diff --git a/gcc/testsuite/g++.dg/opt/pr51262.C b/gcc/testsuite/g++.dg/opt/pr51262.C
new file mode 100644
index 0000000..d0e8d78
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr51262.C
@@ -0,0 +1,21 @@
+// { dg-do compile }
+// { dg-require-effective-target lto }
+// { dg-options "-flto -g" }
+
+template < typename > void *
+bar (int *p)
+{
+ union
+ {
+ int *p;
+ }
+ u;
+ u.p = p;
+ return u.p;
+}
+
+void
+foo (int *p)
+{
+ bar < void >(p);
+}