clang: lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
REGISTER_MAP_WITH_PROGRAMSTATE (NullabilityMap, const MemRegion *, NullabilityState) REGISTER_MAP_WITH_PROGRAMSTATE(PropertyAccessesMap
static NullConstraint getNullConstraint (DefinedOrUnknownSVal Val, ProgramStateRef State)
static bool isValidPointerType (QualType T)
static bool checkValueAtLValForInvariantViolation (ProgramStateRef State, SVal LV, QualType T)
Returns true when the value stored at the given location has been constrained to null after being passed through an object of nonnnull type.
static bool checkParamsForPreconditionViolation (ArrayRef< ParmVarDecl * > Params, ProgramStateRef State, const LocationContext *LocCtxt)
static bool checkSelfIvarsForInvariantViolation (ProgramStateRef State, const LocationContext *LocCtxt)
static bool checkInvariantViolation (ProgramStateRef State, ExplodedNode *N, CheckerContext &C)
static const Expr * lookThroughImplicitCasts (const Expr *E)
Find the outermost subexpression of E that is not an implicit cast.
static Nullability getReceiverNullability (const ObjCMethodCall &M, ProgramStateRef State)
static const Expr * matchValueExprForBind (const Stmt *S)
For a given statement performing a bind, attempt to syntactically match the expression resulting in the bound value.
static bool isARCNilInitializedLocal (CheckerContext &C, const Stmt *S)
Returns true if.

REGISTER_CHECKER

| #define REGISTER_CHECKER | ( | | name, | | ------------------------- | - | | ----- | | | trackingRequired | | | | | ) | | | |

Value:

NullabilityChecker *checker = mgr.getChecker(); \

checker->ChecksEnabled[NullabilityChecker::CK_##name] = true; \

checker->CheckNames[NullabilityChecker::CK_##name] = \

checker->NeedTracking = checker->NeedTracking || trackingRequired; \

checker->NoDiagnoseCallsToSystemHeaders = \

checker->NoDiagnoseCallsToSystemHeaders || \

checker, "NoDiagnoseCallsToSystemHeaders", true); \

} \

\

return true; \

}

bool getCheckerBooleanOption(StringRef CheckerName, StringRef OptionName, bool SearchInParents=false) const

Interprets an option's string value as a boolean.

const AnalyzerOptions & getAnalyzerOptions() const

CheckerNameRef getCurrentCheckerName() const

Definition at line 1405 of file NullabilityChecker.cpp.

NullConstraint

checkInvariantViolation()

checkParamsForPreconditionViolation()

checkSelfIvarsForInvariantViolation()

checkValueAtLValForInvariantViolation()

getNullConstraint()

getReceiverNullability()

isARCNilInitializedLocal()

isValidPointerType()

lookThroughImplicitCasts()

static const Expr * lookThroughImplicitCasts ( const Expr * E) static

Find the outermost subexpression of E that is not an implicit cast.

This looks through the implicit casts to _Nonnull that ARC adds to return expressions of ObjC types when the return type of the function or method is non-null but the express is not.

Definition at line 647 of file NullabilityChecker.cpp.

References E, and clang::Expr::IgnoreImpCasts().

matchValueExprForBind()

static const Expr * matchValueExprForBind ( const Stmt * S) static

For a given statement performing a bind, attempt to syntactically match the expression resulting in the bound value.

Definition at line 1194 of file NullabilityChecker.cpp.

References clang::Init.

REGISTER_MAP_WITH_PROGRAMSTATE()

REGISTER_MAP_WITH_PROGRAMSTATE ( NullabilityMap ,
const MemRegion * ,
NullabilityState
)

ObjectPropPair