clang 20.0.0git
|
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
Static Public Member Functions | |
static bool | canSymbolicate (QualType T) |
Definition at line 506 of file SymbolManager.h.
|
inline |
Definition at line 522 of file SymbolManager.h.
Add artificial symbol dependency.
The dependent symbol should stay alive as long as the primary is alive.
Definition at line 357 of file SymbolManager.cpp.
References clang::Dependent.
Definition at line 342 of file SymbolManager.cpp.
References clang::Type::isIntegralOrEnumerationType(), clang::ento::Loc::isLocType(), clang::Type::isRecordType(), clang::Type::isUnionType(), and clang::T.
Referenced by clang::ento::SValBuilder::conjureSymbolVal(), clang::ento::SValBuilder::getConjuredHeapSymbolVal(), clang::ento::SValBuilder::getDerivedRegionValueSymbolVal(), clang::ento::SValBuilder::getMetadataSymbolVal(), and clang::ento::SValBuilder::getRegionValueSymbolVal().
|
inline |
Definition at line 537 of file SymbolManager.h.
References conjureSymbol(), E, and VisitCount.
const SymbolConjured * SymbolManager::conjureSymbol | ( | const Stmt * | E, |
const LocationContext * | LCtx, | ||
QualType | T, | ||
unsigned | VisitCount, | ||
const void * | SymbolTag = nullptr |
||
) |
Definition at line 180 of file SymbolManager.cpp.
References E, clang::ento::SymbolConjured::Profile(), and clang::T.
Referenced by conjureSymbol(), clang::ento::SValBuilder::conjureSymbol(), clang::ento::SValBuilder::conjureSymbolVal(), clang::ento::SValBuilder::getConjuredHeapSymbolVal(), and populateObjCForDestinationSet().
|
inline |
Definition at line 591 of file SymbolManager.h.
const SymbolCast * SymbolManager::getCastSymbol | ( | const SymExpr * | Operand, |
QualType | From, | ||
QualType | To | ||
) |
Definition at line 243 of file SymbolManager.cpp.
References clang::ento::SymbolCast::Profile().
Referenced by clang::ento::SValBuilder::makeNonLoc().
|
inline |
Definition at line 590 of file SymbolManager.h.
Referenced by clang::ento::RangedConstraintManager::assumeSym().
const SymbolRefSmallVectorTy * SymbolManager::getDependentSymbols | ( | const SymbolRef | Primary | ) |
Definition at line 366 of file SymbolManager.cpp.
const SymbolDerived * SymbolManager::getDerivedSymbol | ( | SymbolRef | parentSymbol, |
const TypedValueRegion * | R | ||
) |
Definition at line 198 of file SymbolManager.cpp.
References clang::ento::SymbolDerived::Profile().
Referenced by clang::ento::SValBuilder::getDerivedRegionValueSymbolVal().
const SymbolExtent * SymbolManager::getExtentSymbol | ( | const SubRegion * | R | ) |
Definition at line 213 of file SymbolManager.cpp.
References clang::ento::SymbolExtent::Profile().
Referenced by clang::ento::MemRegionManager::getStaticSize().
const IntSymExpr * SymbolManager::getIntSymExpr | ( | APSIntPtr | lhs, |
BinaryOperator::Opcode | op, | ||
const SymExpr * | rhs, | ||
QualType | t | ||
) |
Definition at line 273 of file SymbolManager.cpp.
References clang::ento::BinarySymExprImpl< LHSTYPE, RHSTYPE, ClassKind >::Profile().
Referenced by clang::ento::SValBuilder::makeNonLoc().
const SymbolMetadata * SymbolManager::getMetadataSymbol | ( | const MemRegion * | R, |
const Stmt * | S, | ||
QualType | T, | ||
const LocationContext * | LCtx, | ||
unsigned | VisitCount, | ||
const void * | SymbolTag = nullptr |
||
) |
Creates a metadata symbol associated with a specific region.
VisitCount can be used to differentiate regions corresponding to different loop iterations, thus, making the symbol path-dependent.
Definition at line 227 of file SymbolManager.cpp.
References clang::ento::SymbolMetadata::Profile(), and clang::T.
Referenced by clang::ento::SValBuilder::getMetadataSymbolVal().
const SymbolRegionValue * SymbolManager::getRegionValueSymbol | ( | const TypedValueRegion * | R | ) |
Make a unique symbol for MemRegion R according to its kind.
Definition at line 167 of file SymbolManager.cpp.
References clang::ento::SymbolRegionValue::Profile().
Referenced by clang::ento::SValBuilder::getRegionValueSymbolVal().
|
inline |
Definition at line 565 of file SymbolManager.h.
References getSymIntExpr().
const SymIntExpr * SymbolManager::getSymIntExpr | ( | const SymExpr * | lhs, |
BinaryOperator::Opcode | op, | ||
APSIntPtr | rhs, | ||
QualType | t | ||
) |
Definition at line 257 of file SymbolManager.cpp.
References clang::ento::BinarySymExprImpl< LHSTYPE, RHSTYPE, ClassKind >::Profile(), and v.
Referenced by doRearrangeUnchecked(), getSymIntExpr(), and clang::ento::SValBuilder::makeNonLoc().
const SymSymExpr * SymbolManager::getSymSymExpr | ( | const SymExpr * | lhs, |
BinaryOperator::Opcode | op, | ||
const SymExpr * | rhs, | ||
QualType | t | ||
) |
Definition at line 289 of file SymbolManager.cpp.
References clang::ento::BinarySymExprImpl< LHSTYPE, RHSTYPE, ClassKind >::Profile().
Referenced by clang::ento::RangedConstraintManager::assumeSym(), doRearrangeUnchecked(), and clang::ento::SValBuilder::makeNonLoc().
Definition at line 579 of file SymbolManager.h.
References clang::ento::SymExpr::getType().
const UnarySymExpr * SymbolManager::getUnarySymExpr | ( | const SymExpr * | operand, |
UnaryOperator::Opcode | op, | ||
QualType | t | ||
) |
Definition at line 306 of file SymbolManager.cpp.
References clang::ento::UnarySymExpr::Profile(), and clang::T.
Referenced by clang::ento::SValBuilder::makeNonLoc().