The current argument order has "expected" and "actual" the wrong way around, so that the diff shows the change from expected to actual, not from actual to expected. Namely, if the expected diagnostics contains the string "foo", but the analyzer emits "bar", we really want to see: ``` - foo + bar ``` not ``` - bar + foo ``` since adapting to most changes would require applying that diff to the expected output. Differential Revision: https://reviews.llvm.org/D56340 llvm-svn: 350866
22 lines
1.3 KiB
Objective-C
22 lines
1.3 KiB
Objective-C
// RUN: %clang_analyze_cc1 -fblocks -analyzer-checker=core,nullability.NullPassedToNonnull,nullability.NullReturnedFromNonnull,nullability.NullablePassedToNonnull,nullability.NullableReturnedFromNonnull,nullability.NullableDereferenced -analyzer-output=text -verify %s
|
|
// RUN: %clang_analyze_cc1 -fblocks -analyzer-checker=core,nullability.NullPassedToNonnull,nullability.NullReturnedFromNonnull,nullability.NullablePassedToNonnull,nullability.NullableReturnedFromNonnull,nullability.NullableDereferenced -analyzer-output=plist -o %t.plist %s
|
|
// RUN: cat %t.plist | %diff_plist %S/Inputs/expected-plists/nullability-notes.m.plist -
|
|
|
|
#include "Inputs/system-header-simulator-for-nullability.h"
|
|
|
|
void takesNonnull(NSObject *_Nonnull y);
|
|
|
|
@interface ClassWithProperties: NSObject
|
|
@property(copy, nullable) NSObject *x; // plist check ensures no control flow piece from here to 'self.x'.
|
|
-(void) method;
|
|
@end;
|
|
@implementation ClassWithProperties
|
|
-(void) method {
|
|
// no-crash
|
|
NSObject *x = self.x; // expected-note{{Nullability 'nullable' is inferred}}
|
|
takesNonnull(x); // expected-warning{{Nullable pointer is passed to a callee that requires a non-null 1st parameter}}
|
|
// expected-note@-1{{Nullable pointer is passed to a callee that requires a non-null 1st parameter}}
|
|
}
|
|
@end
|
|
|