brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 32d03da Raw
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