]> granicus.if.org Git - clang/commitdiff
Added test case for <rdar://problem/7152418>.
authorTed Kremenek <kremenek@apple.com>
Sat, 26 Sep 2009 17:18:44 +0000 (17:18 +0000)
committerTed Kremenek <kremenek@apple.com>
Sat, 26 Sep 2009 17:18:44 +0000 (17:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82866 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/misc-ps.m

index 9c27029d668b62976c34d27fbf076e2af4cd85bd..565dc61f3b1d702740ecc69811c6faac63413e75 100644 (file)
@@ -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;
+}
+