aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-09-26 17:18:44 +0000
committerTed Kremenek <kremenek@apple.com>2009-09-26 17:18:44 +0000
commit022a1253c021aaa03fa7d65b04f237da9613f8fd (patch)
tree3702b6c40c0c7c71cf1b19c13159b6c1ef558890
parentff2460883bd4b0760c4ca36c7f024e34c78b9e12 (diff)
Added test case for <rdar://problem/7152418>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82866 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Analysis/misc-ps.m24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Analysis/misc-ps.m b/test/Analysis/misc-ps.m
index 9c27029d66..565dc61f3b 100644
--- a/test/Analysis/misc-ps.m
+++ b/test/Analysis/misc-ps.m
@@ -657,3 +657,27 @@ void pr_4988(void) {
pr_4988; // expected-warning{{expression result unused}}
}
+// <rdar://problem/7152418> - A 'signed char' is used as a flag, which is
+// implicitly converted to an int.
+void *rdar7152418_bar();
+@interface RDar7152418 {
+ signed char x;
+}
+-(char)foo;
+@end;
+@implementation RDar7152418
+-(char)foo {
+ char *p = 0;
+ void *result = 0;
+ if (x) {
+ result = rdar7152418_bar();
+ p = "hello";
+ }
+ if (!result) {
+ result = rdar7152418_bar();
+ if (result && x)
+ return *p; // no-warning
+ }
+ return 1;
+}
+