// 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}} | |
} | |
} |