]> granicus.if.org Git - clang/commitdiff
Add yet another test case for PR 8015, showing how reasoning over symbolic indices...
authorTed Kremenek <kremenek@apple.com>
Wed, 1 Sep 2010 23:37:38 +0000 (23:37 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 1 Sep 2010 23:37:38 +0000 (23:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112770 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/misc-ps-region-store.m

index 4aedac22104ad43e85b1a84a15cd7ac1948c41c1..5cd9048c572ae0b4818b4345bac3749ee5a854ce 100644 (file)
@@ -1125,3 +1125,18 @@ void pr8015_E() {
   }
 }
 
+void pr8015_F_FIXME() {
+  // Similar to pr8015_E, but like pr8015_D we check if the pointer
+  // is the same as one of the string literals.  The null dereference
+  // here is not feasible in practice, so this is a false positive.
+  int number = pr8015_A();
+  const char *numbers[] = { "zero", "one", "two" };
+  if (number < 3) {
+    const char *p = numbers[number];
+    if (p == numbers[0] || p == numbers[1] || p == numbers[2])
+      return;
+    int *q = 0;
+    *q = 0xDEADBEEF; // expected-warning{{Dereference of null pointer}}
+  }
+}
+