diff options
-rw-r--r-- | test/Analysis/retain-release.m | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/Analysis/retain-release.m b/test/Analysis/retain-release.m index 87e09e9a83..ba492b7b19 100644 --- a/test/Analysis/retain-release.m +++ b/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 +} |