clang 22.0.0git
|
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
Public Member Functions | |
SymbolManager (ASTContext &ctx, BasicValueFactory &bv, llvm::BumpPtrAllocator &bpalloc) | |
template<typename SymExprT, typename... Args> | |
const SymExprT * | acquire (Args &&...args) |
Create or retrieve a SymExpr of type SymExprT for the given arguments. | |
const SymbolConjured * | conjureSymbol (ConstCFGElementRef Elem, const LocationContext *LCtx, QualType T, unsigned VisitCount, const void *SymbolTag=nullptr) |
QualType | getType (const SymExpr *SE) const |
void | addSymbolDependency (const SymbolRef Primary, const SymbolRef Dependent) |
Add artificial symbol dependency. | |
const SymbolRefSmallVectorTy * | getDependentSymbols (const SymbolRef Primary) |
ASTContext & | getContext () |
BasicValueFactory & | getBasicVals () |
template<typename T, typename... Args> | |
const T * | acquire (Args &&...args) |
Static Public Member Functions | |
static bool | canSymbolicate (QualType T) |
Definition at line 509 of file SymbolManager.h.
|
inline |
Definition at line 525 of file SymbolManager.h.
const SymExprT * clang::ento::SymbolManager::acquire | ( | Args &&... | args | ) |
Create or retrieve a SymExpr of type SymExprT
for the given arguments.
Use the arguments to check for an existing SymExpr and return it, otherwise, create a new one and keep a pointer to it to avoid duplicates.
Referenced by clang::ento::RangedConstraintManager::assumeSym(), conjureSymbol(), doRearrangeUnchecked(), and clang::ento::MemRegionManager::getStaticSize().
const T * clang::ento::SymbolManager::acquire | ( | Args &&... | args | ) |
Definition at line 677 of file SymbolManager.h.
References clang::cast(), and clang::T.
Add artificial symbol dependency.
The dependent symbol should stay alive as long as the primary is alive.
Definition at line 241 of file SymbolManager.cpp.
References clang::Dependent.
Definition at line 226 of file SymbolManager.cpp.
References clang::ento::Loc::isLocType(), 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 acquire(), and clang::T.
Referenced by populateObjCForDestinationSet().
|
inline |
Definition at line 557 of file SymbolManager.h.
|
inline |
Definition at line 556 of file SymbolManager.h.
Referenced by clang::ento::RangedConstraintManager::assumeSym().
const SymbolRefSmallVectorTy * SymbolManager::getDependentSymbols | ( | const SymbolRef | Primary | ) |
Definition at line 250 of file SymbolManager.cpp.
Definition at line 545 of file SymbolManager.h.
References clang::ento::SymExpr::getType().