OSDN Git Service

PR c++/51832
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Jan 2012 20:56:34 +0000 (20:56 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Jan 2012 20:56:34 +0000 (20:56 +0000)
* varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
for extra name aliases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183396 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/pr51832.h [new file with mode: 0644]
gcc/testsuite/g++.dg/lto/pr51832_0.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lto/pr51832_1.C [new file with mode: 0644]
gcc/varpool.c

index 71df98e..be82859 100644 (file)
@@ -1,3 +1,9 @@
+2012-01-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51832
+       * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
+       for extra name aliases.
+
 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR rtl-optimization/51924
index 07b1fef..248578f 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51832
+       * g++.dg/lto/pr51832.h: New.
+       * g++.dg/lto/pr51832_0.C: New.
+       * g++.dg/lto/pr51832_1.C: New.
+
 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc.dg/ext-elim-1.c: New test.
diff --git a/gcc/testsuite/g++.dg/lto/pr51832.h b/gcc/testsuite/g++.dg/lto/pr51832.h
new file mode 100644 (file)
index 0000000..fee3693
--- /dev/null
@@ -0,0 +1,6 @@
+template<class...T> struct A
+{
+  static int i;
+};
+
+inline void f() { A<int>::i = 0; }
diff --git a/gcc/testsuite/g++.dg/lto/pr51832_0.C b/gcc/testsuite/g++.dg/lto/pr51832_0.C
new file mode 100644 (file)
index 0000000..f8fd7ab
--- /dev/null
@@ -0,0 +1,7 @@
+// PR c++/51832
+// { dg-lto-do link }
+// { dg-lto-options { "-std=c++11 -flto -fabi-version=2" } }
+
+#include "pr51832.h"
+
+int main() { }
diff --git a/gcc/testsuite/g++.dg/lto/pr51832_1.C b/gcc/testsuite/g++.dg/lto/pr51832_1.C
new file mode 100644 (file)
index 0000000..6f0137b
--- /dev/null
@@ -0,0 +1 @@
+#include "pr51832.h"
index 74fc1ba..e01accb 100644 (file)
@@ -484,6 +484,7 @@ varpool_analyze_pending_decls (void)
            {
              DECL_WEAK (node->decl) = DECL_WEAK (node->alias_of);
              TREE_PUBLIC (node->decl) = TREE_PUBLIC (node->alias_of);
+             DECL_EXTERNAL (node->decl) = DECL_EXTERNAL (node->alias_of);
              DECL_VISIBILITY (node->decl) = DECL_VISIBILITY (node->alias_of);
              if (TREE_PUBLIC (node->decl))
                {