Hi.

I'm going to install Jakub's test-case for a PR that's fixed
on trunk.

Martin

gcc/testsuite/ChangeLog:

2019-03-08  Jakub Jelinek  <ja...@redhat.com>

        PR c/85870
        * gcc.dg/lto/pr85870_0.c: New test.
        * gcc.dg/lto/pr85870_1.c: New test.
---
 gcc/testsuite/gcc.dg/lto/pr85870_0.c | 34 ++++++++++++++++++++++++++++
 gcc/testsuite/gcc.dg/lto/pr85870_1.c | 27 ++++++++++++++++++++++
 2 files changed, 61 insertions(+)
 create mode 100644 gcc/testsuite/gcc.dg/lto/pr85870_0.c
 create mode 100644 gcc/testsuite/gcc.dg/lto/pr85870_1.c


diff --git a/gcc/testsuite/gcc.dg/lto/pr85870_0.c b/gcc/testsuite/gcc.dg/lto/pr85870_0.c
new file mode 100644
index 00000000000..4b59f607ebd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/pr85870_0.c
@@ -0,0 +1,34 @@
+/* PR c/85870 */
+/* { dg-lto-do link } */
+/* { dg-lto-options { { -flto -O2 } } } */
+
+typedef struct abc_s {
+  char a1;
+  short a2;
+  unsigned int a3;
+  unsigned int a4;
+} abc;
+
+typedef struct xyz_s {
+ unsigned x1;
+ unsigned x2;
+ abc *x3;
+} xyz;
+
+extern xyz XYZ[3];
+static const abc Arr1[]={
+                       {0,0,0xdeadbeaf,0xbeefdead} ,
+#line 1040
+                        {0,0,0xdeadbeaf,0xbeefdead} };
+
+void init_xyz_0() {
+  XYZ[0].x1=975753;
+  XYZ[0].x2=1024;
+  XYZ[0].x3=(abc *)Arr1;
+
+}
+
+int
+main ()
+{
+}
diff --git a/gcc/testsuite/gcc.dg/lto/pr85870_1.c b/gcc/testsuite/gcc.dg/lto/pr85870_1.c
new file mode 100644
index 00000000000..cd1cd310164
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/pr85870_1.c
@@ -0,0 +1,27 @@
+typedef struct abc_s {
+  char a1;
+  short a2;
+  unsigned int a3;
+  unsigned int a4;
+} abc;
+
+
+typedef struct xyz_s {
+ unsigned int x1;
+ unsigned int x2;
+ abc *x3;
+} xyz;
+
+
+extern xyz XYZ[3];
+static const abc Arr2[]={
+                       {0,0,0xbeafdead,0xdeadbeef} ,
+#line 1048594
+                           {0,0,0xbeafdead,0xdeadbeef} };
+
+void init_xyz_1() {
+  XYZ[1].x1=425753;
+  XYZ[1].x2=1048576;
+  XYZ[1].x3=(abc *)Arr2;
+
+}

Reply via email to