diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-04-16 04:29:21 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-04-16 04:29:21 +0000 |
commit | bba6a4b3670fd26b97d4a720a495023469c44d59 (patch) | |
tree | cbbde85b8a71bc932fb1ccd518550097885c2e5c /clang | |
parent | 8cb96e92a13e10c5fd574651e782ec9f5f065589 (diff) | |
download | bcm5719-llvm-bba6a4b3670fd26b97d4a720a495023469c44d59.tar.gz bcm5719-llvm-bba6a4b3670fd26b97d4a720a495023469c44d59.zip |
Update CF reference count checker test case to illustrate the use of
toll-free bridging.
llvm-svn: 49772
Diffstat (limited to 'clang')
-rw-r--r-- | clang/test/Analysis-Apple/CFDate.c | 15 | ||||
-rw-r--r-- | clang/test/Analysis-Apple/CFDate.m | 27 |
2 files changed, 27 insertions, 15 deletions
diff --git a/clang/test/Analysis-Apple/CFDate.c b/clang/test/Analysis-Apple/CFDate.c deleted file mode 100644 index 58b568b4245..00000000000 --- a/clang/test/Analysis-Apple/CFDate.c +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: clang -checker-cfref -verify %s - -#include <CoreFoundation/CFDate.h> - -CFAbsoluteTime f1() { - CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); - CFDateRef date = CFDateCreate(NULL, t); - CFRetain(date); - CFRelease(date); - CFDateGetAbsoluteTime(date); - CFRelease(date); - t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}} - return t; -} - diff --git a/clang/test/Analysis-Apple/CFDate.m b/clang/test/Analysis-Apple/CFDate.m new file mode 100644 index 00000000000..c79b253cfdc --- /dev/null +++ b/clang/test/Analysis-Apple/CFDate.m @@ -0,0 +1,27 @@ +// RUN: clang -checker-cfref -verify %s + +#include <CoreFoundation/CFDate.h> +#include <Foundation/NSDate.h> + +CFAbsoluteTime f1() { + CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); + CFDateRef date = CFDateCreate(NULL, t); + CFRetain(date); + CFRelease(date); + CFDateGetAbsoluteTime(date); // no-warning + CFRelease(date); + t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}} + return t; +} + +CFAbsoluteTime f2() { + CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); + CFDateRef date = CFDateCreate(NULL, t); + [((NSDate*) date) retain]; + CFRelease(date); + CFDateGetAbsoluteTime(date); // no-warning + [((NSDate*) date) release]; + t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}} + return t; +} + |