]> granicus.if.org Git - clang/commitdiff
Add test cases.
authorZhongxing Xu <xuzhongxing@gmail.com>
Tue, 20 Apr 2010 05:48:57 +0000 (05:48 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Tue, 20 Apr 2010 05:48:57 +0000 (05:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101878 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/method-call.cpp [new file with mode: 0644]
test/Analysis/new.cpp [new file with mode: 0644]

diff --git a/test/Analysis/method-call.cpp b/test/Analysis/method-call.cpp
new file mode 100644 (file)
index 0000000..dd89159
--- /dev/null
@@ -0,0 +1,18 @@
+// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store region -verify %s
+struct A {
+  int x;
+  A(int a) { x = a; }
+  int getx() { return x; }
+};
+
+void f1() {
+  A x(3);
+  if (x.getx() == 3) {
+    int *p = 0;
+    *p = 3;  // expected-warning{{Dereference of null pointer}}
+  } else {
+    int *p = 0;
+    *p = 3;  // no-warning
+  }
+}
+
diff --git a/test/Analysis/new.cpp b/test/Analysis/new.cpp
new file mode 100644 (file)
index 0000000..95bd966
--- /dev/null
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store region -verify %s
+
+void f1() {
+  int *n1 = new int;
+  if (*n1) { // expected-warning {{Branch condition evaluates to a garbage value}}
+  }
+
+  int *n2 = new int(3);
+  if (*n2) { // no-warning
+  }
+}
+