// RUN: %clang_analyze_cc1 -fblocks -analyze -analyzer-checker=core,nullability,apiModeling -verify %s #include "Inputs/system-header-simulator-for-nullability.h" NSString* getUnknownString(); NSString* _Nonnull trust_nonnull_framework_annotation() { NSString* out = [NSString generateString]; if (out) {} return out; // no-warning } NSString* _Nonnull distrust_without_annotation() { NSString* out = [NSString generatePossiblyNullString]; if (out) {} return out; // expected-warning{{}} } NSString* _Nonnull nonnull_please_trust_me(); NSString* _Nonnull distrust_local_nonnull_annotation() { NSString* out = nonnull_please_trust_me(); if (out) {} return out; // expected-warning{{}} } NSString* _Nonnull trust_c_function() { NSString* out = getString(); if (out) {}; return out; // no-warning } NSString* _Nonnull distrust_unannoted_function() { NSString* out = getPossiblyNullString(); if (out) {}; return out; // expected-warning{{}} } NSString * _Nonnull distrustProtocol(id o) { NSString* out = [o getString]; if (out) {}; return out; // expected-warning{{}} }