aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2015-06-24 09:21:45 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2015-06-24 09:21:45 +0000
commit72e839ca6ba1a268d1bc840e7c35b674e9731309 (patch)
tree7b56fc8e614a70a40cfec539844f498be0e67182 /gcc
parent61c580ea4d8cc3c2834c3da350452077971d8419 (diff)
downloadgcc-72e839ca6ba1a268d1bc840e7c35b674e9731309.zip
gcc-72e839ca6ba1a268d1bc840e7c35b674e9731309.tar.gz
gcc-72e839ca6ba1a268d1bc840e7c35b674e9731309.tar.bz2
re PR c++/65811 (ice in vague_linkage_p)
/cp 2015-06-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65811 * decl.c (duplicate_decls): Adjust DECL_COMDAT of newdecl. /testsuite 2015-06-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65811 * g++.dg/other/linkage2.C: New. From-SVN: r224888
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/linkage2.C10
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index de6e856..03f0989 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2015-06-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65811
+ * decl.c (duplicate_decls): Adjust DECL_COMDAT of newdecl.
+
2015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/30044
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index a8fc1a5..8f0bb34 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -2106,6 +2106,8 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
TREE_STATIC (olddecl) = TREE_STATIC (newdecl) |= TREE_STATIC (olddecl);
if (! DECL_EXTERNAL (olddecl))
DECL_EXTERNAL (newdecl) = 0;
+ if (! DECL_COMDAT (olddecl))
+ DECL_COMDAT (newdecl) = 0;
new_template_info = NULL_TREE;
if (DECL_LANG_SPECIFIC (newdecl) && DECL_LANG_SPECIFIC (olddecl))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index daadf4c..7786e48 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-06-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65811
+ * g++.dg/other/linkage2.C: New.
+
2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/63408
diff --git a/gcc/testsuite/g++.dg/other/linkage2.C b/gcc/testsuite/g++.dg/other/linkage2.C
new file mode 100644
index 0000000..97f8ef2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/linkage2.C
@@ -0,0 +1,10 @@
+// PR c++/65811
+
+struct foo { int i; };
+
+static void fn1 ();
+inline void
+fn1 ()
+{
+ static struct foo a[1];
+}