--- /dev/null
+// PR c++/122302
+// { dg-do run { target c++11 } }
+// { dg-options "-O2" }
+
+struct A {
+ unsigned char a[130] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 1, 2 };
+};
+
+void
+foo ()
+{
+ A a;
+ for (int i = 0; i < 130; ++i)
+ if (a.a[i] != (i & 15) + 1)
+ __builtin_abort ();
+}
+
+void
+bar ()
+{
+ A a;
+ for (int i = 0; i < 130; ++i)
+ if (a.a[i] != (i & 15) + 1)
+ __builtin_abort ();
+}
+
+int
+main ()
+{
+ foo ();
+ bar ();
+}