clang
10.0.0git
|
#include "clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h"
Protected Member Functions | |
virtual SVal | evalCastFromNonLoc (NonLoc val, QualType castTy)=0 |
virtual SVal | evalCastFromLoc (Loc val, QualType castTy)=0 |
Protected Attributes | |
ASTContext & | Context |
BasicValueFactory | BasicVals |
Manager of APSInt values. More... | |
SymbolManager | SymMgr |
Manages the creation of symbols. More... | |
MemRegionManager | MemMgr |
Manages the creation of memory regions. More... | |
ProgramStateManager & | StateMgr |
const QualType | ArrayIndexTy |
The scalar type to use for array indices. More... | |
const unsigned | ArrayIndexWidth |
The width of the scalar type used for array indices. More... | |
Definition at line 52 of file SValBuilder.h.
|
inline |
Definition at line 84 of file SValBuilder.h.
References ~SValBuilder().
|
virtualdefault |
Referenced by SValBuilder().
ConditionTruthVal SValBuilder::areEqual | ( | ProgramStateRef | state, |
SVal | lhs, | ||
SVal | rhs | ||
) |
lhs
and rhs
are equal at state
. Definition at line 437 of file SValBuilder.cpp.
References evalEQ().
Referenced by haveSameType().
|
inline |
Definition at line 179 of file SValBuilder.h.
References clang::ento::SymbolManager::conjureSymbol().
|
inline |
Definition at line 187 of file SValBuilder.h.
References clang::ento::SymbolManager::conjureSymbol(), conjureSymbolVal(), clang::ast_matchers::expr, getBlockPointer(), getConjuredHeapSymbolVal(), getConstantVal(), getDerivedRegionValueSymbolVal(), getFunctionPointer(), getMemberPointer(), getMetadataSymbolVal(), getRegionValueSymbolVal(), makeZeroVal(), and clang::ast_matchers::stmt.
DefinedOrUnknownSVal clang::ento::SValBuilder::conjureSymbolVal | ( | const void * | symbolTag, |
const Expr * | expr, | ||
const LocationContext * | LCtx, | ||
unsigned | count | ||
) |
Create a new symbol with a unique 'name'.
We resort to conjured symbols when we cannot construct a derived symbol. The advantage of symbols derived/built from other symbols is that we preserve the relation between related(or even equivalent) expressions, so conjured symbols should be used sparingly.
Referenced by conjureSymbol(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::retaincountchecker::RetainCountChecker::evalCall(), clang::ento::ExprEngine::getInitialState(), getRegionValueSymbolVal(), clang::ento::ExprEngine::handleLVectorSplat(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitDeclStmt(), and clang::ento::ExprEngine::VisitGuardedExpr().
DefinedOrUnknownSVal SValBuilder::conjureSymbolVal | ( | const void * | symbolTag, |
const Expr * | expr, | ||
const LocationContext * | LCtx, | ||
QualType | type, | ||
unsigned | count | ||
) |
Definition at line 153 of file SValBuilder.cpp.
References clang::ento::SymbolManager::canSymbolicate(), clang::ento::SymbolManager::conjureSymbol(), clang::ento::MemRegionManager::getSymbolicRegion(), clang::ento::Loc::isLocType(), clang::Type::isNullPtrType(), makeZeroVal(), MemMgr, and SymMgr.
DefinedOrUnknownSVal SValBuilder::conjureSymbolVal | ( | const Stmt * | stmt, |
const LocationContext * | LCtx, | ||
QualType | type, | ||
unsigned | visitCount | ||
) |
Definition at line 172 of file SValBuilder.cpp.
References clang::ento::SymbolManager::canSymbolicate(), clang::ento::SymbolManager::conjureSymbol(), clang::ento::MemRegionManager::getSymbolicRegion(), clang::ento::Loc::isLocType(), clang::Type::isNullPtrType(), makeZeroVal(), MemMgr, and SymMgr.
Definition at line 99 of file SValBuilder.cpp.
References ArrayIndexTy, ArrayIndexWidth, clang::ento::SVal::castAs(), evalCastFromNonLoc(), clang::ento::SVal::getAs(), and clang::ento::SVal::isUnknownOrUndef().
Referenced by makeArrayIndex().
Referenced by clang::ento::StoreManager::CastRetrievedVal(), and evalCast().
SVal SValBuilder::evalBinOp | ( | ProgramStateRef | state, |
BinaryOperator::Opcode | op, | ||
SVal | lhs, | ||
SVal | rhs, | ||
QualType | type | ||
) |
Definition at line 404 of file SValBuilder.cpp.
References clang::ento::SVal::castAs(), evalBinOpLL(), evalBinOpLN(), evalBinOpNN(), clang::ento::SVal::getAs(), clang::ento::SVal::isUndef(), and clang::ento::SVal::isUnknown().
Referenced by clang::ento::ExprEngine::evalBinOp(), evalEQ(), and haveSameType().
|
pure virtual |
Create a new value which represents a binary expression with two memory location operands.
Referenced by evalBinOp(), and haveSameType().
|
pure virtual |
Create a new value which represents a binary expression with a memory location and non-location operands.
For example, this would be used to evaluate a pointer arithmetic operation.
Referenced by evalBinOp(), and haveSameType().
|
pure virtual |
Create a new value which represents a binary expression with two non- location operands.
Referenced by clang::ento::ProgramState::assumeInBound(), evalBinOp(), clang::ento::ExprEngine::evalBinOp(), evalIntegralCast(), and haveSameType().
Definition at line 525 of file SValBuilder.cpp.
References clang::ento::ProgramStateManager::ArrayToPointer(), clang::ento::SVal::castAs(), clang::ento::StoreManager::castRegion(), Context, dispatchCast(), evalCastFromLoc(), clang::ento::SVal::getAs(), clang::ento::SVal::getAsRegion(), clang::ento::SVal::getAsSymbol(), getBasicValueFactory(), clang::QualType::getCanonicalType(), clang::ASTContext::getCanonicalType(), clang::ASTContext::getPointerType(), clang::ento::ProgramStateManager::getStoreManager(), clang::Type::isBlockPointerType(), clang::Type::isBooleanType(), clang::ento::SVal::isConstant(), clang::Type::isFunctionPointerType(), clang::Type::isFunctionType(), clang::Type::isIntegralOrEnumerationType(), clang::ento::Loc::isLocType(), clang::Type::isMemberPointerType(), clang::Type::isPointerType(), clang::Type::isReferenceType(), clang::ento::SVal::isUnknownOrUndef(), clang::Type::isVariableArrayType(), clang::ento::SVal::isZeroConstant(), makeNonLoc(), makeTruthVal(), shouldBeModeledWithNoOp(), and StateMgr.
Referenced by clang::ento::SimpleConstraintManager::assume(), evalIntegralCast(), getConstantVal(), clang::ento::ExprEngine::handleLValueBitCast(), haveSameType(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::VisitCXXNewExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
|
protectedpure virtual |
Referenced by evalCast().
|
protectedpure virtual |
Referenced by convertToArrayIndex().
Referenced by clang::ento::ExprEngine::evalComplement(), and haveSameType().
SVal SValBuilder::evalEQ | ( | ProgramStateRef | state, |
SVal | lhs, | ||
SVal | rhs | ||
) |
Definition at line 442 of file SValBuilder.cpp.
References evalBinOp(), and getConditionType().
Referenced by areEqual(), evalEQ(), and haveSameType().
DefinedOrUnknownSVal SValBuilder::evalEQ | ( | ProgramStateRef | state, |
DefinedOrUnknownSVal | lhs, | ||
DefinedOrUnknownSVal | rhs | ||
) |
Definition at line 446 of file SValBuilder.cpp.
References clang::ento::SVal::castAs(), and evalEQ().
SVal SValBuilder::evalIntegralCast | ( | ProgramStateRef | state, |
SVal | val, | ||
QualType | castTy, | ||
QualType | originalType | ||
) |
Definition at line 489 of file SValBuilder.cpp.
References clang::ento::SVal::castAs(), evalBinOpNN(), evalCast(), clang::ento::SVal::getAsSymbolicExpression(), getConditionType(), getContext(), clang::Type::isUnsignedIntegerType(), makeIntVal(), and makeNonLoc().
Referenced by haveSameType(), and clang::ento::ExprEngine::VisitCast().
Referenced by clang::ento::ExprEngine::evalMinus(), and haveSameType().
|
inline |
Definition at line 164 of file SValBuilder.h.
References ArrayIndexTy.
Referenced by clang::ento::ProgramState::assumeInBound(), clang::ento::TypedValueRegion::getExtent(), and clang::ento::StringRegion::getExtent().
|
inline |
Definition at line 168 of file SValBuilder.h.
References BasicVals.
Referenced by clang::ento::ProgramState::assumeInBound(), clang::ento::nonloc::ConcreteInt::evalBinOp(), evalCast(), and clang::ento::SimpleConstraintManager::getBasicVals().
|
inline |
Definition at line 169 of file SValBuilder.h.
References BasicVals.
DefinedSVal SValBuilder::getBlockPointer | ( | const BlockDecl * | block, |
CanQualType | locTy, | ||
const LocationContext * | locContext, | ||
unsigned | blockCount | ||
) |
Definition at line 259 of file SValBuilder.cpp.
References clang::LocationContext::getAnalysisDeclContext(), clang::ento::MemRegionManager::getBlockCodeRegion(), clang::ento::MemRegionManager::getBlockDataRegion(), and MemMgr.
Referenced by conjureSymbol(), and clang::ento::ExprEngine::VisitBlockExpr().
|
inline |
Definition at line 160 of file SValBuilder.h.
References clang::ASTContext::BoolTy, clang::ASTContext::getLangOpts(), and clang::ASTContext::IntTy.
Referenced by evalEQ(), evalIntegralCast(), and clang::ento::ExprEngine::getInitialState().
DefinedOrUnknownSVal SValBuilder::getConjuredHeapSymbolVal | ( | const Expr * | E, |
const LocationContext * | LCtx, | ||
unsigned | Count | ||
) |
Conjure a symbol representing heap allocated memory region.
Note, the expression should represent a location.
Definition at line 191 of file SValBuilder.cpp.
References clang::ento::SymbolManager::canSymbolicate(), clang::ento::SymbolManager::conjureSymbol(), clang::ento::MemRegionManager::getSymbolicHeapRegion(), clang::Expr::getType(), clang::ento::Loc::isLocType(), clang::Type::isNullPtrType(), makeZeroVal(), MemMgr, and SymMgr.
Referenced by conjureSymbol(), and clang::ento::ExprEngine::VisitCXXNewExpr().
Returns the value of E
, if it can be determined in a non-path-sensitive manner.
If E
is not a constant or cannot be modeled, returns None
.
Definition at line 285 of file SValBuilder.cpp.
References evalCast(), clang::Expr::EvaluateAsInt(), getContext(), clang::APValue::getInt(), getRegionManager(), clang::Stmt::getStmtClass(), clang::Expr::getType(), clang::Expr::IgnoreParens(), clang::Expr::isGLValue(), clang::ento::Loc::isLocType(), clang::Expr::isNullPointerConstant(), makeBoolVal(), makeIntVal(), makeLoc(), makeNull(), makeTruthVal(), makeZeroVal(), clang::Expr::NPC_ValueDependentIsNotNull, and clang::Expr::EvalResult::Val.
Referenced by conjureSymbol().
|
inline |
Definition at line 155 of file SValBuilder.h.
References Context.
Referenced by clang::ento::SimpleConstraintManager::assume(), clang::ento::ProgramState::assumeInBound(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), evalIntegralCast(), getConstantVal(), getCXXThis(), clang::ento::TypedValueRegion::getExtent(), clang::ento::FieldRegion::getExtent(), and clang::ento::StoreManager::MakeElementRegion().
|
inline |
Definition at line 156 of file SValBuilder.h.
References Context.
loc::MemRegionVal SValBuilder::getCXXThis | ( | const CXXMethodDecl * | D, |
const StackFrameContext * | SFC | ||
) |
Return a memory region for the 'this' object reference.
Definition at line 271 of file SValBuilder.cpp.
References getRegionManager(), and clang::CXXMethodDecl::getThisType().
Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), getConstructedRegion(), clang::ento::ExprEngine::getInitialState(), makeSymbolVal(), clang::ento::ExprEngine::ProcessBaseDtor(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::ProcessMemberDtor(), and clang::ento::ExprEngine::VisitCXXConstructExpr().
loc::MemRegionVal SValBuilder::getCXXThis | ( | const CXXRecordDecl * | D, |
const StackFrameContext * | SFC | ||
) |
Return a memory region for the 'this' object reference.
Definition at line 278 of file SValBuilder.cpp.
References getContext(), clang::ASTContext::getPointerType(), getRegionManager(), and clang::TypeDecl::getTypeForDecl().
DefinedOrUnknownSVal SValBuilder::getDerivedRegionValueSymbolVal | ( | SymbolRef | parentSymbol, |
const TypedValueRegion * | region | ||
) |
Definition at line 221 of file SValBuilder.cpp.
References clang::ento::SymbolManager::canSymbolicate(), clang::ento::SymbolManager::getDerivedSymbol(), clang::ento::MemRegionManager::getSymbolicRegion(), clang::ento::TypedValueRegion::getValueType(), clang::ento::Loc::isLocType(), clang::Type::isNullPtrType(), makeZeroVal(), MemMgr, and SymMgr.
Referenced by conjureSymbol().
DefinedSVal SValBuilder::getFunctionPointer | ( | const FunctionDecl * | func | ) |
Definition at line 255 of file SValBuilder.cpp.
References clang::ento::MemRegionManager::getFunctionCodeRegion(), and MemMgr.
Referenced by conjureSymbol(), and getMemberPointer().
|
pure virtual |
Evaluates a given SVal.
If the SVal has only one possible (integer) value, that value is returned. Otherwise, returns NULL.
Referenced by haveSameType().
DefinedSVal SValBuilder::getMemberPointer | ( | const DeclaratorDecl * | DD | ) |
Definition at line 239 of file SValBuilder.cpp.
References getFunctionPointer(), and clang::prec::PointerToMember.
Referenced by conjureSymbol(), clang::ento::ExprEngine::VisitCast(), and clang::ento::ExprEngine::VisitUnaryOperator().
DefinedSVal SValBuilder::getMetadataSymbolVal | ( | const void * | symbolTag, |
const MemRegion * | region, | ||
const Expr * | expr, | ||
QualType | type, | ||
const LocationContext * | LCtx, | ||
unsigned | count | ||
) |
Definition at line 204 of file SValBuilder.cpp.
References clang::ento::SymbolManager::canSymbolicate(), clang::ento::SymbolManager::getMetadataSymbol(), clang::ento::MemRegionManager::getSymbolicRegion(), clang::ento::Loc::isLocType(), MemMgr, and SymMgr.
Referenced by conjureSymbol().
|
inline |
Definition at line 174 of file SValBuilder.h.
References MemMgr.
Referenced by clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), getConstantVal(), getCXXThis(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), and clang::ento::ExprEngine::VisitLambdaExpr().
|
inline |
Definition at line 175 of file SValBuilder.h.
References MemMgr.
DefinedOrUnknownSVal SValBuilder::getRegionValueSymbolVal | ( | const TypedValueRegion * | region | ) |
Make a unique symbol for value of region.
Definition at line 118 of file SValBuilder.cpp.
References clang::ento::SymbolManager::canSymbolicate(), conjureSymbolVal(), clang::LocationContext::getAnalysisDeclContext(), clang::AnalysisDeclContext::getASTContext(), clang::ASTContext::getPointerType(), clang::ento::SymbolManager::getRegionValueSymbol(), clang::ento::MemRegionManager::getSymbolicRegion(), clang::Expr::getType(), clang::ento::TypedValueRegion::getValueType(), clang::Expr::isGLValue(), clang::ento::Loc::isLocType(), clang::Type::isNullPtrType(), makeZeroVal(), MemMgr, and SymMgr.
Referenced by conjureSymbol().
|
inline |
Definition at line 158 of file SValBuilder.h.
References StateMgr.
|
inline |
Definition at line 171 of file SValBuilder.h.
References SymMgr.
Referenced by clang::ento::AllocaRegion::getExtent(), clang::ento::TypedValueRegion::getExtent(), clang::ento::SymbolicRegion::getExtent(), clang::ento::SimpleConstraintManager::getSymbolManager(), and clang::ento::CheckerContext::getSymbolManager().
|
inline |
Definition at line 172 of file SValBuilder.h.
References SymMgr.
Definition at line 93 of file SValBuilder.h.
References clang::ento::SymExpr::getType().
Definition at line 97 of file SValBuilder.h.
References areEqual(), evalBinOp(), evalBinOpLL(), evalBinOpLN(), evalBinOpNN(), evalCast(), evalComplement(), evalEQ(), evalIntegralCast(), evalMinus(), clang::ASTContext::getCanonicalType(), getKnownValue(), clang::Type::isIntegralOrEnumerationType(), makeSymExprValNN(), simplifySVal(), clang::CodeGen::state, and State.
|
inline |
Definition at line 272 of file SValBuilder.h.
References convertToArrayIndex().
Referenced by clang::ento::mpi::MPIChecker::checkMissingWaits(), and clang::ento::StoreManager::MakeElementRegion().
|
inline |
Definition at line 284 of file SValBuilder.h.
References clang::ObjCBoolLiteralExpr::getValue(), and makeTruthVal().
Referenced by getConstantVal().
nonloc::ConcreteInt SValBuilder::makeBoolVal | ( | const CXXBoolLiteralExpr * | boolean | ) |
Definition at line 113 of file SValBuilder.cpp.
References clang::CXXBoolLiteralExpr::getValue(), and makeTruthVal().
|
inline |
Definition at line 250 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getCompoundValData().
Referenced by makeZeroVal(), and clang::ento::ExprEngine::VisitInitListExpr().
|
inline |
Definition at line 294 of file SValBuilder.h.
|
inline |
Definition at line 278 of file SValBuilder.h.
References clang::Expr::getType(), clang::APIntStorage::getValue(), and clang::Type::isUnsignedIntegerOrEnumerationType().
Referenced by clang::ento::nonloc::ConcreteInt::evalComplement(), evalIntegralCast(), clang::ento::nonloc::ConcreteInt::evalMinus(), getConstantVal(), clang::ento::TypedValueRegion::getExtent(), clang::ento::StringRegion::getExtent(), clang::ento::CheckerContext::isGreaterOrEqual(), clang::ento::CheckerContext::isNegative(), makeZeroVal(), clang::ento::ExprEngine::VisitLogicalExpr(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().
|
inline |
Definition at line 290 of file SValBuilder.h.
Definition at line 298 of file SValBuilder.h.
|
inline |
Definition at line 302 of file SValBuilder.h.
References clang::ento::Loc::isLocType().
Definition at line 309 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getIntValue().
|
inline |
Definition at line 313 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getIntWithPtrWidth().
|
inline |
Definition at line 254 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getLazyCompoundValData().
Definition at line 353 of file SValBuilder.h.
References clang::ento::MemRegionManager::getSymbolicRegion().
Referenced by getConstantVal(), clang::ento::StoreManager::getLValueVar(), and makeSymbolVal().
Definition at line 357 of file SValBuilder.h.
|
inline |
Definition at line 361 of file SValBuilder.h.
References clang::AddrLabelExpr::getLabel().
|
inline |
Definition at line 365 of file SValBuilder.h.
Definition at line 318 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getPersistentSValWithData(), and makeNonLoc().
NonLoc SValBuilder::makeNonLoc | ( | const SymExpr * | lhs, |
BinaryOperator::Opcode | op, | ||
const llvm::APSInt & | rhs, | ||
QualType | type | ||
) |
Definition at line 67 of file SValBuilder.cpp.
References clang::ento::SymbolManager::getIntSymExpr(), clang::ento::SymbolManager::getSymIntExpr(), clang::ento::Loc::isLocType(), and SymMgr.
Referenced by evalCast(), evalIntegralCast(), makeLocAsInteger(), and makeSymExprValNN().
NonLoc clang::ento::SValBuilder::makeNonLoc | ( | const llvm::APSInt & | rhs, |
BinaryOperator::Opcode | op, | ||
const SymExpr * | lhs, | ||
QualType | type | ||
) |
NonLoc SValBuilder::makeNonLoc | ( | const SymExpr * | lhs, |
BinaryOperator::Opcode | op, | ||
const SymExpr * | rhs, | ||
QualType | type | ||
) |
Definition at line 85 of file SValBuilder.cpp.
References clang::ento::SymbolManager::getSymSymExpr(), clang::ento::Loc::isLocType(), and SymMgr.
Create a NonLoc value for cast.
Definition at line 92 of file SValBuilder.cpp.
References clang::ento::SymbolManager::getCastSymbol(), clang::ento::Loc::isLocType(), and SymMgr.
|
inline |
Definition at line 349 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getZeroWithPtrWidth().
Referenced by clang::ento::retaincountchecker::RetainCountChecker::evalCall(), getConstantVal(), makeZeroVal(), and clang::ento::ExprEngine::VisitCast().
Create NULL pointer, with proper pointer bit-width for given address space.
type | pointer type. |
Definition at line 345 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getZeroWithTypeSize().
|
inline |
Definition at line 260 of file SValBuilder.h.
References clang::prec::PointerToMember.
Referenced by clang::ento::ExprEngine::VisitCast().
|
inline |
Definition at line 264 of file SValBuilder.h.
References clang::prec::PointerToMember.
Make an SVal that represents the given symbol.
This follows the convention of representing Loc-type symbols (symbolic pointers and references) as Loc values wrapping the symbol rather than as plain symbol values.
Definition at line 372 of file SValBuilder.h.
References clang::ento::createSimpleSValBuilder(), getCXXThis(), clang::ento::SymExpr::getType(), clang::ento::Loc::isLocType(), and makeLoc().
Referenced by clang::ento::SMTConstraintManager::canReasonAbout().
SVal SValBuilder::makeSymExprValNN | ( | BinaryOperator::Opcode | op, |
NonLoc | lhs, | ||
NonLoc | rhs, | ||
QualType | resultTy | ||
) |
Constructs a symbolic expression for two non-location values.
Definition at line 377 of file SValBuilder.cpp.
References clang::ento::SymExpr::computeComplexity(), clang::ento::SubEngine::getAnalysisManager(), clang::ento::SVal::getAs(), clang::ento::SVal::getAsSymExpr(), clang::ento::ProgramStateManager::getOwningEngine(), makeNonLoc(), clang::ento::AnalysisManager::options, and StateMgr.
Referenced by haveSameType().
|
inline |
Definition at line 334 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getTruthValue().
Referenced by evalCast(), getConstantVal(), makeBoolVal(), and clang::ento::ExprEngine::VisitCast().
|
inline |
Definition at line 338 of file SValBuilder.h.
References clang::ento::BasicValueFactory::getTruthValue().
|
inline |
Definition at line 268 of file SValBuilder.h.
Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), and clang::ento::StoreManager::GetElementZeroRegion().
DefinedOrUnknownSVal SValBuilder::makeZeroVal | ( | QualType | type | ) |
Construct an SVal representing '0' for the specified type.
Definition at line 52 of file SValBuilder.cpp.
References BasicVals, clang::ento::BasicValueFactory::getEmptySValList(), clang::Type::isAnyComplexType(), clang::Type::isArrayType(), clang::Type::isIntegralOrEnumerationType(), clang::ento::Loc::isLocType(), clang::Type::isRecordType(), clang::Type::isVectorType(), makeCompoundVal(), makeIntVal(), and makeNull().
Referenced by conjureSymbol(), conjureSymbolVal(), getConjuredHeapSymbolVal(), getConstantVal(), getDerivedRegionValueSymbolVal(), clang::ento::ExprEngine::getInitialState(), getRegionValueSymbolVal(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
|
pure virtual |
Simplify symbolic expressions within a given SVal.
Return an SVal that represents the same value, but is hopefully easier to work with than the original SVal.
Referenced by haveSameType().
|
protected |
The scalar type to use for array indices.
Definition at line 70 of file SValBuilder.h.
Referenced by convertToArrayIndex(), and getArrayIndexType().
|
protected |
The width of the scalar type used for array indices.
Definition at line 73 of file SValBuilder.h.
Referenced by convertToArrayIndex().
|
protected |
Manager of APSInt values.
Definition at line 59 of file SValBuilder.h.
Referenced by getBasicValueFactory(), and makeZeroVal().
|
protected |
Definition at line 56 of file SValBuilder.h.
Referenced by evalCast(), and getContext().
|
protected |
Manages the creation of memory regions.
Definition at line 65 of file SValBuilder.h.
Referenced by conjureSymbolVal(), getBlockPointer(), getConjuredHeapSymbolVal(), getDerivedRegionValueSymbolVal(), getFunctionPointer(), getMetadataSymbolVal(), getRegionManager(), and getRegionValueSymbolVal().
|
protected |
Definition at line 67 of file SValBuilder.h.
Referenced by evalCast(), getStateManager(), and makeSymExprValNN().
|
protected |
Manages the creation of symbols.
Definition at line 62 of file SValBuilder.h.
Referenced by conjureSymbolVal(), getConjuredHeapSymbolVal(), getDerivedRegionValueSymbolVal(), getMetadataSymbolVal(), getRegionValueSymbolVal(), getSymbolManager(), and makeNonLoc().