Mercurial > hg > CbC > CbC_gcc
view 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 |
line wrap: on
line source
// P0683R1 // { dg-do compile { target c++11 } } // { dg-options "" } int a; const int b = 0; struct T { int i : true ? 10 : b = 6; // { dg-error "assignment of read-only variable" } int : 4 = 10; // { dg-error "default member initializer for unnamed bit-field" } int : 5 = a + b; // { dg-error "default member initializer for unnamed bit-field" } }; template <bool V, int W> struct U { int j : W = 7; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } } int k : W { 8 }; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } } int l : V ? 7 : a = 3; // { dg-error "modification of .a. is not a constant expression" } // { dg-error "width not an integer constant" "" { target *-*-* } .-1 } int m : (V ? W : b) = 9; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } } // { dg-error "zero width for bit-field" "" { target *-*-* } .-1 } int n : (V ? W : b) { 10 }; // { dg-warning "default member initializers for bit-fields only available with" "" { target c++17_down } } // { dg-error "zero width for bit-field" "" { target *-*-* } .-1 } int o : 1 || new int { 0 }; int : 4 = 10; // { dg-error "default member initializer for unnamed bit-field" } int : 5 = a + b; // { dg-error "default member initializer for unnamed bit-field" } }; U<false, 10> u;