Hi,
this is stand alone testcase for that PR.
Comitted to mainline.

        PR lto/60820
        * gcc.dg/lto/pr60820_0.c: New testcase.
        * gcc.dg/lto/pr60820_1.c: New testcase.
        
Index: testsuite/gcc.dg/lto/pr60820_1.c
===================================================================
--- testsuite/gcc.dg/lto/pr60820_1.c    (revision 0)
+++ testsuite/gcc.dg/lto/pr60820_1.c    (revision 0)
@@ -0,0 +1,11 @@
+#include <stdio.h>
+struct in6_addr {int bah;};
+extern const struct in6_addr in6addr_any;
+static const struct in6_addr local_in6addr_any = {1};
+#pragma weak in6addr_any = local_in6addr_any
+
+__attribute__ ((used))
+void foo()
+{
+  fprintf (stderr, "v1: %p, v2: %p\n", &local_in6addr_any, &in6addr_any);
+}
Index: testsuite/gcc.dg/lto/pr60820_0.c
===================================================================
--- testsuite/gcc.dg/lto/pr60820_0.c    (revision 0)
+++ testsuite/gcc.dg/lto/pr60820_0.c    (revision 0)
@@ -0,0 +1,13 @@
+/* { dg-lto-do link } */
+/* { dg-lto-options {{-flto -r -nostdlib -O2}} } */
+#include <stdio.h>
+struct in6_addr {int bah;};
+extern const struct in6_addr in6addr_any;
+static const struct in6_addr local_in6addr_any = {1};
+#pragma weak in6addr_any = local_in6addr_any
+
+__attribute__ ((used))
+void foo2()
+{
+  fprintf (stderr, "v1: %p, v2: %p\n", &local_in6addr_any, &in6addr_any);
+}

Reply via email to