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 | |||
) |