Skip to content

Commit efd092b

Browse files
bcahoonronlieb
authored andcommitted
[clang][Sema] Restore switch-default.cpp test case
This test case exists upstream currently. It was deleted by mistake when reapplying the patch: [clang][Sema] Add -Wswitch-default warning option (llvm#73077) The test case had been added upstream for a subsequent patch [Clang][Sema] Fix Wswitch-default bad warning in template (llvm#76007) Change-Id: I94fdbe2daa4703166e0d7fc00a3a4d08f98ae410
1 parent f177937 commit efd092b

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

clang/test/Sema/switch-default.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wswitch-default %s
2+
3+
int 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+
11+
int f2(int a) {
12+
switch (a) { // no-warning
13+
default:
14+
;
15+
}
16+
return a;
17+
}
18+
19+
// Warn even completely covered Enum cases(GCC compatibility).
20+
enum E { A, B };
21+
enum 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+
29+
template<typename Index>
30+
int 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+
39+
template<typename Index>
40+
int t2(Index i)
41+
{
42+
switch (i) { // no-warning
43+
case 0: return 0;
44+
case 1: return 1;
45+
default: return 2;
46+
}
47+
return 0;
48+
}
49+
50+
int main() {
51+
return t1(1); // expected-note {{in instantiation of function template specialization 't1<int>' requested here}}
52+
}
53+

0 commit comments

Comments
 (0)