clang API Documentation

Public Member Functions | Static Public Member Functions
clang::ento::SymbolManager Class Reference

#include <SymbolManager.h>

List of all members.

Public Member Functions

 SymbolManager (ASTContext &ctx, BasicValueFactory &bv, llvm::BumpPtrAllocator &bpalloc)
 ~SymbolManager ()
const SymbolRegionValuegetRegionValueSymbol (const TypedValueRegion *R)
 Make a unique symbol for MemRegion R according to its kind.
const SymbolConjuredgetConjuredSymbol (const Stmt *E, const LocationContext *LCtx, QualType T, unsigned VisitCount, const void *SymbolTag=0)
const SymbolConjuredgetConjuredSymbol (const Expr *E, const LocationContext *LCtx, unsigned VisitCount, const void *SymbolTag=0)
const SymbolDerivedgetDerivedSymbol (SymbolRef parentSymbol, const TypedValueRegion *R)
const SymbolExtentgetExtentSymbol (const SubRegion *R)
const SymbolMetadatagetMetadataSymbol (const MemRegion *R, const Stmt *S, QualType T, unsigned VisitCount, const void *SymbolTag=0)
 Creates a metadata symbol associated with a specific region.
const SymbolCastgetCastSymbol (const SymExpr *Operand, QualType From, QualType To)
const SymIntExprgetSymIntExpr (const SymExpr *lhs, BinaryOperator::Opcode op, const llvm::APSInt &rhs, QualType t)
const SymIntExprgetSymIntExpr (const SymExpr &lhs, BinaryOperator::Opcode op, const llvm::APSInt &rhs, QualType t)
const IntSymExprgetIntSymExpr (const llvm::APSInt &lhs, BinaryOperator::Opcode op, const SymExpr *rhs, QualType t)
const SymSymExprgetSymSymExpr (const SymExpr *lhs, BinaryOperator::Opcode op, const SymExpr *rhs, QualType t)
QualType getType (const SymExpr *SE) const
void addSymbolDependency (const SymbolRef Primary, const SymbolRef Dependent)
 Add artificial symbol dependency.
const SymbolRefSmallVectorTygetDependentSymbols (const SymbolRef Primary)
ASTContextgetContext ()
BasicValueFactorygetBasicVals ()

Static Public Member Functions

static bool canSymbolicate (QualType T)

Detailed Description

Definition at line 472 of file SymbolManager.h.


Constructor & Destructor Documentation

clang::ento::SymbolManager::SymbolManager ( ASTContext ctx,
BasicValueFactory bv,
llvm::BumpPtrAllocator &  bpalloc 
) [inline]

Definition at line 486 of file SymbolManager.h.

SymbolManager::~SymbolManager ( )

Definition at line 351 of file SymbolManager.cpp.


Member Function Documentation

void SymbolManager::addSymbolDependency ( const SymbolRef  Primary,
const SymbolRef  Dependent 
)

Add artificial symbol dependency.

The dependent symbol should stay alive as long as the primary is alive.

Definition at line 374 of file SymbolManager.cpp.

bool SymbolManager::canSymbolicate ( QualType  T) [static]
BasicValueFactory& clang::ento::SymbolManager::getBasicVals ( ) [inline]

Definition at line 555 of file SymbolManager.h.

const SymbolCast * SymbolManager::getCastSymbol ( const SymExpr Operand,
QualType  From,
QualType  To 
)

Definition at line 262 of file SymbolManager.cpp.

Referenced by clang::ento::SValBuilder::makeNonLoc().

const SymbolConjured* clang::ento::SymbolManager::getConjuredSymbol ( const Stmt E,
const LocationContext LCtx,
QualType  T,
unsigned  VisitCount,
const void *  SymbolTag = 0 
)
const SymbolConjured* clang::ento::SymbolManager::getConjuredSymbol ( const Expr E,
const LocationContext LCtx,
unsigned  VisitCount,
const void *  SymbolTag = 0 
) [inline]

Definition at line 504 of file SymbolManager.h.

References getConjuredSymbol(), and clang::Expr::getType().

ASTContext& clang::ento::SymbolManager::getContext ( ) [inline]

Definition at line 554 of file SymbolManager.h.

const SymbolRefSmallVectorTy * SymbolManager::getDependentSymbols ( const SymbolRef  Primary)

Definition at line 387 of file SymbolManager.cpp.

const SymbolDerived * SymbolManager::getDerivedSymbol ( SymbolRef  parentSymbol,
const TypedValueRegion R 
)
const SymbolExtent * SymbolManager::getExtentSymbol ( const SubRegion R)

Definition at line 228 of file SymbolManager.cpp.

Referenced by clang::ento::FieldRegion::getExtent().

const IntSymExpr * SymbolManager::getIntSymExpr ( const llvm::APSInt &  lhs,
BinaryOperator::Opcode  op,
const SymExpr rhs,
QualType  t 
)

Definition at line 295 of file SymbolManager.cpp.

const SymbolMetadata * SymbolManager::getMetadataSymbol ( const MemRegion R,
const Stmt S,
QualType  T,
unsigned  VisitCount,
const void *  SymbolTag = 0 
)

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 244 of file SymbolManager.cpp.

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 175 of file SymbolManager.cpp.

Referenced by clang::ento::SValBuilder::getRegionValueSymbolVal().

const SymIntExpr* clang::ento::SymbolManager::getSymIntExpr ( const SymExpr lhs,
BinaryOperator::Opcode  op,
const llvm::APSInt &  rhs,
QualType  t 
)
const SymIntExpr* clang::ento::SymbolManager::getSymIntExpr ( const SymExpr lhs,
BinaryOperator::Opcode  op,
const llvm::APSInt &  rhs,
QualType  t 
) [inline]

Definition at line 531 of file SymbolManager.h.

References getSymIntExpr().

const SymSymExpr * SymbolManager::getSymSymExpr ( const SymExpr lhs,
BinaryOperator::Opcode  op,
const SymExpr rhs,
QualType  t 
)

Definition at line 313 of file SymbolManager.cpp.

Referenced by clang::ento::SValBuilder::makeNonLoc().

QualType clang::ento::SymbolManager::getType ( const SymExpr SE) const [inline]

Definition at line 543 of file SymbolManager.h.

References clang::ento::SymExpr::getType().


The documentation for this class was generated from the following files: