aboutsummaryrefslogtreecommitdiff
path: root/test/Analysis/nullability-no-arc.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/nullability-no-arc.mm')
-rw-r--r--test/Analysis/nullability-no-arc.mm100
1 files changed, 0 insertions, 100 deletions
diff --git a/test/Analysis/nullability-no-arc.mm b/test/Analysis/nullability-no-arc.mm
deleted file mode 100644
index 0760186f4243..000000000000
--- a/test/Analysis/nullability-no-arc.mm
+++ /dev/null
@@ -1,100 +0,0 @@
-// RUN: %clang_analyze_cc1 -analyzer-checker=core,nullability -verify %s
-
-#define nil 0
-
-@protocol NSObject
-+ (id)alloc;
-- (id)init;
-- (instancetype)autorelease;
-- (void)release;
-@end
-
-__attribute__((objc_root_class))
-@interface
-NSObject<NSObject>
-@end
-
-@interface TestObject : NSObject
-@end
-
-TestObject *_Nonnull returnsNilObjCInstanceIndirectly() {
- TestObject *local = nil;
- return local; // expected-warning {{nil returned from a function that is expected to return a non-null value}}
-}
-
-TestObject * _Nonnull returnsNilObjCInstanceIndirectlyWithSupressingCast() {
- TestObject *local = nil;
- return (TestObject * _Nonnull)local; // no-warning
-}
-
-TestObject * _Nonnull returnsNilObjCInstanceDirectly() {
- // The first warning is from Sema. The second is from the static analyzer.
- return nil; // expected-warning {{null returned from function that requires a non-null return value}}
- // expected-warning@-1 {{nil returned from a function that is expected to return a non-null value}}
-}
-
-TestObject * _Nonnull returnsNilObjCInstanceDirectlyWithSuppressingCast() {
- return (TestObject * _Nonnull)nil; // no-warning
-}
-
-void testObjCNonARCNoInitialization(TestObject * _Nonnull p) {
- TestObject * _Nonnull implicitlyZeroInitialized; // no-warning
- implicitlyZeroInitialized = p;
-}
-
-void testObjCNonARCExplicitZeroInitialization() {
- TestObject * _Nonnull explicitlyZeroInitialized = nil; // expected-warning {{nil assigned to a pointer which is expected to have non-null value}}
-}
-
-@interface ClassWithInitializers : NSObject
-@end
-
-@implementation ClassWithInitializers
-- (instancetype _Nonnull)initWithNonnullReturnAndSelfCheckingIdiom {
- // This defensive check is a common-enough idiom that we don't want
- // to issue a diagnostic for it.
- if (self = [super init]) {
- }
-
- return self; // no-warning
-}
-
-- (instancetype _Nonnull)initWithNonnullReturnAndNilReturnViaLocal {
- self = [super init];
- // This leaks, but we're not checking for that here.
-
- ClassWithInitializers *other = nil;
- // False negative. Once we have more subtle suppression of defensive checks in
- // initializers we should warn here.
- return other;
-}
-
-- (instancetype _Nonnull)initWithPreconditionViolation:(int)p {
- self = [super init];
- if (p < 0) {
- [self release];
- return (ClassWithInitializers * _Nonnull)nil;
- }
- return self;
-}
-
-+ (instancetype _Nonnull)factoryCallingInitWithNonnullReturnAndSelfCheckingIdiom {
- return [[[self alloc] initWithNonnullReturnAndSelfCheckingIdiom] autorelease]; // no-warning
-}
-
-+ (instancetype _Nonnull)factoryCallingInitWithNonnullReturnAndNilReturnViaLocal {
- return [[[self alloc] initWithNonnullReturnAndNilReturnViaLocal] autorelease]; // no-warning
-}
-
-+ (instancetype _Nonnull)initWithPreconditionViolation:(int) p {
- return [[[self alloc] initWithPreconditionViolation:p] autorelease]; // no-warning
-}
-
-- (TestObject * _Nonnull) returnsNil {
- return (TestObject * _Nonnull)nil;
-}
-- (TestObject * _Nonnull) inlineOfReturnsNilObjCInstanceDirectlyWithSuppressingCast {
- TestObject *o = [self returnsNil];
- return o;
-}
-@end