// RUN: %clang_cc1 -std=c++2a -include %s -verify %s | |
// RUN: %clang_cc1 -std=c++2a -emit-pch %s -o %t | |
// RUN: %clang_cc1 -std=c++2a -include-pch %t -verify %s -DPCH | |
#ifndef HEADER | |
#define HEADER | |
struct S { | |
unsigned int n : 5 = 49; // expected-warning {{changes value}} | |
}; | |
int a; | |
template<bool B> struct T { | |
int m : B ? 8 : a = 42; | |
}; | |
#else | |
// expected-error@-5 {{constant expression}} expected-note@-5 {{cannot modify}} | |
static_assert(S().n == 17); | |
static_assert(T<true>().m == 0); | |
int q = T<false>().m; // expected-note {{instantiation of}} | |
#endif |