summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/retain-release.m
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/retain-release.m')
-rw-r--r--clang/test/Analysis/retain-release.m21
1 files changed, 19 insertions, 2 deletions
diff --git a/clang/test/Analysis/retain-release.m b/clang/test/Analysis/retain-release.m
index a27fdac27fb..1274b197bf3 100644
--- a/clang/test/Analysis/retain-release.m
+++ b/clang/test/Analysis/retain-release.m
@@ -142,9 +142,13 @@ NSFastEnumerationState;
@end
@class NSString, NSDictionary;
@interface NSValue : NSObject <NSCopying, NSCoding> - (void)getValue:(void *)value;
-@end @interface NSNumber : NSValue - (char)charValue;
+@end
+@interface NSNumber : NSValue
+- (char)charValue;
- (id)initWithInt:(int)value;
-@end @class NSString;
++ (NSNumber *)numberWithInt:(int)value;
+@end
+@class NSString;
@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>
- (NSUInteger)count;
- (id)initWithObjects:(const id [])objects count:(NSUInteger)cnt;
@@ -1812,6 +1816,19 @@ void test_objc_arrays() {
}
}
+void test_objc_integer_literals() {
+ id value = [@1 retain]; // expected-warning {{leak}}
+ [value description];
+}
+
+void test_objc_boxed_expressions(int x, const char *y) {
+ id value = [@(x) retain]; // expected-warning {{leak}}
+ [value description];
+
+ value = [@(y) retain]; // expected-warning {{leak}}
+ [value description];
+}
+
// Test NSLog doesn't escape tracked objects.
void rdar11400885(int y)
{
OpenPOWER on IntegriCloud