54 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wswitch-default %s2 3int f1(int a) {4 switch (a) { // expected-warning {{'switch' missing 'default' label}}5 case 1: a++; break;6 case 2: a += 2; break;7 }8 return a;9}10 11int f2(int a) {12 switch (a) { // no-warning13 default:14 ;15 }16 return a;17}18 19// Warn even completely covered Enum cases(GCC compatibility).20enum E { A, B };21enum E check_enum(enum E e) {22 switch (e) { // expected-warning {{'switch' missing 'default' label}}23 case A: break;24 case B: break;25 }26 return e;27}28 29template<typename Index>30int t1(Index i)31{32 switch (i) { // expected-warning {{'switch' missing 'default' label}}33 case 0: return 0;34 case 1: return 1;35 }36 return 0;37}38 39template<typename Index>40int t2(Index i)41{42 switch (i) { // no-warning43 case 0: return 0;44 case 1: return 1;45 default: return 2;46 }47 return 0;48}49 50int main() {51 return t1(1); // expected-note {{in instantiation of function template specialization 't1<int>' requested here}}52}53 54