annotate gcc/testsuite/g++.dg/cpp2a/desig15.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 // { dg-do run }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 // { dg-options "-pedantic" }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 struct A { int a; };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 struct B { int b; A c; int d; };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 A a = { 1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 B c = { 3, { 4 }, 5 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 #if __cpp_designated_initializers >= 201707L
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 A b = { .a = 2 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 B d = { .b = 6, .c { 7 }, .d = 8 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 B e = { .c = { .a = 9 } };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 #else
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 A b = { 2 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 B d = { 6, { 7 }, 8 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 B e = { 0, { 9 } };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 #endif
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 int
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 main ()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 if (a.a != 1 || b.a != 2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 || c.b != 3 || c.c.a != 4 || c.d != 5
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 || d.b != 6 || d.c.a != 7 || d.d != 8
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 || e.b != 0 || e.c.a != 9 || e.d != 0)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 return 0;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 }