diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2015-06-24 09:21:45 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2015-06-24 09:21:45 +0000 |
commit | 72e839ca6ba1a268d1bc840e7c35b674e9731309 (patch) | |
tree | 7b56fc8e614a70a40cfec539844f498be0e67182 /gcc | |
parent | 61c580ea4d8cc3c2834c3da350452077971d8419 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/linkage2.C | 10 |
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]; +} |