annotate gcc/testsuite/g++.dg/cpp2a/bitfield2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // P0683R1
kono
parents:
diff changeset
2 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
3 // { dg-options "" }
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 int a;
kono
parents:
diff changeset
6 const int b = 0;
kono
parents:
diff changeset
7 struct T {
kono
parents:
diff changeset
8 int i : true ? 10 : b = 6; // { dg-error "assignment of read-only variable" }
kono
parents:
diff changeset
9 int : 4 = 10; // { dg-error "default member initializer for unnamed bit-field" }
kono
parents:
diff changeset
10 int : 5 = a + b; // { dg-error "default member initializer for unnamed bit-field" }
kono
parents:
diff changeset
11 };
kono
parents:
diff changeset
12 template <bool V, int W>
kono
parents:
diff changeset
13 struct U {
kono
parents:
diff changeset
14 int j : W = 7; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } }
kono
parents:
diff changeset
15 int k : W { 8 }; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } }
kono
parents:
diff changeset
16 int l : V ? 7 : a = 3; // { dg-error "modification of .a. is not a constant expression" }
kono
parents:
diff changeset
17 // { dg-error "width not an integer constant" "" { target *-*-* } .-1 }
kono
parents:
diff changeset
18 int m : (V ? W : b) = 9; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } }
kono
parents:
diff changeset
19 // { dg-error "zero width for bit-field" "" { target *-*-* } .-1 }
kono
parents:
diff changeset
20 int n : (V ? W : b) { 10 }; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } }
kono
parents:
diff changeset
21 // { dg-error "zero width for bit-field" "" { target *-*-* } .-1 }
kono
parents:
diff changeset
22 int o : 1 || new int { 0 };
kono
parents:
diff changeset
23 int : 4 = 10; // { dg-error "default member initializer for unnamed bit-field" }
kono
parents:
diff changeset
24 int : 5 = a + b; // { dg-error "default member initializer for unnamed bit-field" }
kono
parents:
diff changeset
25 };
kono
parents:
diff changeset
26 U<false, 10> u;