hanchenye-llvm-project/clang/test/SemaCXX/switch.cpp

43 lines
691 B
C++

// RUN: %clang_cc1 -fsyntax-only -verify %s
void test() {
bool x = true;
switch (x) { // expected-warning {{bool}}
case 0:
break;
}
int n = 3;
switch (n && 1) { // expected-warning {{bool}}
case 1:
break;
}
}
// PR5518
struct A {
operator int(); // expected-note{{conversion to integral type}}
};
void x() {
switch(A()) {
}
}
enum E { e1, e2 };
struct B : A {
operator E() const; // expected-note{{conversion to enumeration type}}
};
void x2() {
switch (B()) { // expected-error{{multiple conversions}}
}
}
struct C; // expected-note{{forward declaration}}
void x3(C &c) {
switch (c) { // expected-error{{incomplete class type}}
}
}