summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-04-10 23:44:06 +0000
committerTed Kremenek <kremenek@apple.com>2008-04-10 23:44:06 +0000
commit4b772096947829ee129ebfe53e8955751f843f61 (patch)
treedbdf42f76b8aae62b3ad68fab78a7bb3936bc64d /clang/test
parentde615836f31d032025a98008082652e83c74da01 (diff)
downloadbcm5719-llvm-4b772096947829ee129ebfe53e8955751f843f61.tar.gz
bcm5719-llvm-4b772096947829ee129ebfe53e8955751f843f61.zip
Fixed some logic errors in the CF ref count checker; we now can detect simple
use-after-release errors. Added test case. llvm-svn: 49509
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis-Apple/CFDate.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/Analysis-Apple/CFDate.c b/clang/test/Analysis-Apple/CFDate.c
new file mode 100644
index 00000000000..ea15994e4da
--- /dev/null
+++ b/clang/test/Analysis-Apple/CFDate.c
@@ -0,0 +1,15 @@
+// RUN: clang -checker-cfref -verify %s
+
+#include <CoreFoundation/CFDate.h>
+
+CFAbsoluteTime f1() {
+ CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
+ CFDateRef date = CFDateCreate(NULL, t);
+ CFRetain(date);
+ CFRelease(date);
+ t = CFDateGetAbsoluteTime(date);
+ CFRelease(date);
+ t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}}
+ return t;
+}
+
OpenPOWER on IntegriCloud