diff options
| author | Jordan Rose <jordan_rose@apple.com> | 2012-08-07 01:11:14 +0000 |
|---|---|---|
| committer | Jordan Rose <jordan_rose@apple.com> | 2012-08-07 01:11:14 +0000 |
| commit | c11a33a2bd8e999be50ffc78b9bb747112f5b1f8 (patch) | |
| tree | c75db83833ad5eee511d042796eebd4d5f92c296 | |
| parent | 06d29572e1c7d57fb8fca6cd8e8707a4ecb498cd (diff) | |
| download | bcm5719-llvm-c11a33a2bd8e999be50ffc78b9bb747112f5b1f8.tar.gz bcm5719-llvm-c11a33a2bd8e999be50ffc78b9bb747112f5b1f8.zip | |
[analyzer] Add a test case for OS X 10.8's NSMakeCollectable under non-GC.
This is an additional test for r161349 (ignoring 10.8's annotations for
NSMakeCollectable).
llvm-svn: 161380
| -rw-r--r-- | clang/test/Analysis/retain-release.m | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/Analysis/retain-release.m b/clang/test/Analysis/retain-release.m index 87e09e9a837..ba492b7b19a 100644 --- a/clang/test/Analysis/retain-release.m +++ b/clang/test/Analysis/retain-release.m @@ -300,6 +300,9 @@ extern CGColorSpaceRef CGColorSpaceCreateDeviceRGB(void); + (id)array; @end +// This is how NSMakeCollectable is declared in the OS X 10.8 headers. +id NSMakeCollectable(CFTypeRef __attribute__((cf_consumed))) __attribute__((ns_returns_retained)); + //===----------------------------------------------------------------------===// // Test cases. @@ -1842,3 +1845,13 @@ void rdar11400885(int y) NSLog(@"Again: %@", printString); // expected-warning {{Reference-counted object is used after it is released}} } } + +id makeCollectableNonLeak() { + extern CFTypeRef CFCreateSomething(); + + CFTypeRef object = CFCreateSomething(); // +1 + CFRetain(object); // +2 + id objCObject = NSMakeCollectable(object); // +2 + [objCObject release]; // +1 + return [objCObject autorelease]; // +0 +} |

