// RUN: %clang_analyze_cc1 -fobjc-arc -analyzer-checker=core,nullability.NullPassedToNonnull,nullability.NullReturnedFromNonnull -DNOSYSTEMHEADERS=0 -verify %s
// RUN: %clang_analyze_cc1 -fobjc-arc -analyzer-checker=core,nullability.NullPassedToNonnull,nullability.NullReturnedFromNonnull -analyzer-config nullability:NoDiagnoseCallsToSystemHeaders=true -DNOSYSTEMHEADERS=1 -verify %s
int ;
typedef struct Dummy Dummy;
void ;
void ;
Dummy *_Nullable ;
void
Dummy *_Nonnull
void
Dummy *_Nonnull
Dummy *_Nonnull
void
void
void
void
Dummy *_Nonnull
TestObject *_Nonnull ;
void
void
// Under ARC, returned expressions of ObjC objects types are are implicitly
// cast to _Nonnull when the functions return type is _Nonnull, so make
// sure this doesn't implicit cast doesn't suppress a legitimate warning.
TestObject * _Nonnull
TestObject * _Nonnull
TestObject * _Nonnull
TestObject * _Nonnull
void
void