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

Go to the source code of this file.

Functions
static bool isInfeasibleCast (const DynamicCastInfo *CastInfo, bool CastSucceeds)
static const NoteTag * getNoteTag (CheckerContext &C, const DynamicCastInfo *CastInfo, QualType CastToTy, const Expr *Object, bool CastSucceeds, bool IsKnownCast)
static const NoteTag * getNoteTag (CheckerContext &C, SmallVector< QualType, 4 > CastToTyVec, const Expr *Object, bool IsKnownCast)
static QualType alignReferenceTypes (QualType toAlign, QualType alignTowards, ASTContext &ACtx)
static void addCastTransition (const CallEvent &Call, DefinedOrUnknownSVal DV, CheckerContext &C, bool IsNonNullParam, bool IsNonNullReturn, bool IsCheckedCast=false)
static void addInstanceOfTransition (const CallEvent &Call, DefinedOrUnknownSVal DV, ProgramStateRef State, CheckerContext &C, bool IsInstanceOf)
static void evalNonNullParamNonNullReturn (const CallEvent &Call, DefinedOrUnknownSVal DV, CheckerContext &C, bool IsCheckedCast=false)
static void evalNonNullParamNullReturn (const CallEvent &Call, DefinedOrUnknownSVal DV, CheckerContext &C)
static void evalNullParamNullReturn (const CallEvent &Call, DefinedOrUnknownSVal DV, CheckerContext &C)
static void evalZeroParamNonNullReturn (const CallEvent &Call, DefinedOrUnknownSVal DV, CheckerContext &C, bool IsCheckedCast=false)
static void evalZeroParamNullReturn (const CallEvent &Call, DefinedOrUnknownSVal DV, CheckerContext &C)

addCastTransition()

Definition at line 198 of file CastValueChecker.cpp.

References alignReferenceTypes(), clang::C, clang::Call, clang::ento::SVal::getAsRegion(), clang::ento::getDynamicCastInfo(), getNoteTag(), isInfeasibleCast(), clang::Type::isPointerType(), clang::Type::isReferenceType(), clang::ento::setDynamicTypeAndCastInfo(), clang::ento::DynamicCastInfo::succeeds(), and V.

Referenced by evalNonNullParamNonNullReturn(), evalNonNullParamNullReturn(), evalZeroParamNonNullReturn(), and evalZeroParamNullReturn().

addInstanceOfTransition()

Definition at line 259 of file CastValueChecker.cpp.

References alignReferenceTypes(), clang::C, clang::Call, clang::ento::SVal::castAs(), clang::TemplateArgumentList::get(), clang::ento::SVal::getAsRegion(), clang::TemplateArgument::getAsType(), clang::ento::getDynamicCastInfo(), clang::TemplateArgument::getKind(), getNoteTag(), clang::FunctionDecl::getTemplateSpecializationArgs(), clang::Type::isPointerType(), clang::Type::isReferenceType(), clang::TemplateArgument::Pack, clang::TemplateArgument::pack_elements(), clang::ento::setDynamicTypeAndCastInfo(), clang::ento::DynamicCastInfo::succeeds(), clang::Success, and clang::TemplateArgument::Type.

alignReferenceTypes()

evalNonNullParamNonNullReturn()

evalNonNullParamNullReturn()

evalNullParamNullReturn()

evalZeroParamNonNullReturn()

evalZeroParamNullReturn()

getNoteTag() [1/2]

getNoteTag() [2/2]

isInfeasibleCast()