diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-09-09 00:40:43 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-09-09 00:40:43 +0000 |
commit | 977a58a8fd16bccfbc11b5c4c70b869fded9f8b9 (patch) | |
tree | e7ee61087f3a5dc2ed160244dc56cea271cd2c61 | |
parent | 4d3175c1e5a44251ea97b0c81e80f060629d9c08 (diff) |
Include test case for <rdar://problem/5880430>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113458 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/Analysis/misc-ps.m | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/Analysis/misc-ps.m b/test/Analysis/misc-ps.m index 4fbaa49c11..206eb51371 100644 --- a/test/Analysis/misc-ps.m +++ b/test/Analysis/misc-ps.m @@ -1068,3 +1068,30 @@ void pr8050(struct PR8050 **arg) *arg = malloc(1); } +// <rdar://problem/5880430> Switch on enum should not consider default case live +// if all enum values are covered +enum Cases { C1, C2, C3, C4 }; +void test_enum_cases(enum Cases C) { + switch (C) { + case C1: + case C2: + case C4: + case C3: + return; + } + int *p = 0; + *p = 0xDEADBEEF; // no-warning +} + +void test_enum_cases_positive(enum Cases C) { + switch (C) { // expected-warning{{enumeration value 'C4' not handled in switch}} + case C1: + case C2: + case C3: + return; + } + int *p = 0; + *p = 0xDEADBEEF; // expected-warning{{Dereference of null pointer}} +} + + |