1 // PR c++/79681
2 // { dg-do compile { target c++14 } }
3 // { dg-options "-O2" }
4 
5 struct A
6 {
7   char i : 4;
8   char k : 1;
9   char l : 3;
10 };
11 struct B
12 {
13   char j : 4;
14 };
15 struct C
16 {
17   long long u;
18   A a[1];
19   B b[1];
20 };
21 
22 constexpr bool
foo()23 foo ()
24 {
25   C c = { 0, { { 5, 0, 2 } }, { { 6 } } };
26   C d = { 0, { { 6, 0, 1 } }, { { 5 } } };
27   return c.a[0].i == d.a[0].i && c.b[0].j == d.b[0].j;
28 }
29 
30 constexpr bool
bar()31 bar ()
32 {
33   C c = { 0, { { 5, 0, 2 } }, { { 6 } } };
34   C d = { 0, { { 6, 0, 1 } }, { { 5 } } };
35   return c.a[0].i == d.a[0].i && c.a[0].l == d.a[0].l;
36 }
37 
38 static_assert (foo () == false, "");
39 static_assert (bar () == false, "");
40