diff options
author | Jason Merrill <jason@redhat.com> | 2014-08-19 13:29:41 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-08-19 13:29:41 -0400 |
commit | ad035db84b6136038f9919c72c2bdf140342bf4e (patch) | |
tree | 4cb0153209b7ff5e3fdfbcaa3fa0522493f6fc63 | |
parent | 46ae04656126e8fc3e7b16d9fb759c7bc29d4755 (diff) | |
download | gcc-ad035db84b6136038f9919c72c2bdf140342bf4e.zip gcc-ad035db84b6136038f9919c72c2bdf140342bf4e.tar.gz gcc-ad035db84b6136038f9919c72c2bdf140342bf4e.tar.bz2 |
re PR lto/53808 (Undefined symbol when building a library with lto)
PR lto/53808
PR c++/61659
* decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
comdat_linkage.
From-SVN: r214177
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/abi/spec1.C | 4 |
3 files changed, 11 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b366a4f..c60682e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2014-08-19 Jason Merrill <jason@redhat.com> + + PR lto/53808 + PR c++/61659 + * decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger + comdat_linkage. + 2014-08-19 Gerald Pfeifer <gerald@pfeifer.com> * class.c (contains_empty_class_p): Remove. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 92a6dbc..cc54cca 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -5099,10 +5099,6 @@ maybe_commonize_var (tree decl) } } } - else if (DECL_LANG_SPECIFIC (decl) && DECL_COMDAT (decl)) - /* Set it up again; we might have set DECL_INITIAL since the last - time. */ - comdat_linkage (decl); } /* Issue an error message if DECL is an uninitialized const variable. */ diff --git a/gcc/testsuite/g++.dg/abi/spec1.C b/gcc/testsuite/g++.dg/abi/spec1.C new file mode 100644 index 0000000..153c0cf --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/spec1.C @@ -0,0 +1,4 @@ +// { dg-final { scan-assembler-not "weak" } } + +template <class T> struct A { static int i; }; +template<> int A<int>::i = 42; |