annotate gcc/testsuite/g++.dg/cpp0x/constexpr-union5.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/54922
kono
parents:
diff changeset
2 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
3 // { dg-options "-pedantic" }
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 #define SA(X) static_assert(X,#X)
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 struct A
kono
parents:
diff changeset
8 {
kono
parents:
diff changeset
9 union {
kono
parents:
diff changeset
10 union {
kono
parents:
diff changeset
11 union {
kono
parents:
diff changeset
12 unsigned char i;
kono
parents:
diff changeset
13 int j;
kono
parents:
diff changeset
14 };
kono
parents:
diff changeset
15 };
kono
parents:
diff changeset
16 };
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 constexpr A() : i(42) {}
kono
parents:
diff changeset
19 };
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 constexpr A a;
kono
parents:
diff changeset
22 SA((a.i == 42));
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 struct B
kono
parents:
diff changeset
25 {
kono
parents:
diff changeset
26 struct {
kono
parents:
diff changeset
27 int h;
kono
parents:
diff changeset
28 struct {
kono
parents:
diff changeset
29 union {
kono
parents:
diff changeset
30 unsigned char i;
kono
parents:
diff changeset
31 int j;
kono
parents:
diff changeset
32 };
kono
parents:
diff changeset
33 int k;
kono
parents:
diff changeset
34 }; // { dg-warning "anonymous struct" }
kono
parents:
diff changeset
35 }; // { dg-warning "anonymous struct" }
kono
parents:
diff changeset
36 int l;
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 constexpr B(): h(1), i(2), k(3), l(4) {}
kono
parents:
diff changeset
39 };
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 constexpr B b;
kono
parents:
diff changeset
42 SA((b.h == 1 && b.i == 2 && b.k == 3 && b.l == 4));