clang API Documentation
#include <ThreadSafetyCommon.h>
Classes | |
struct | BlockInfo |
struct | CallingContext |
Encapsulates the lexical context of a function call. The lexical context includes the arguments to the call, including the implicit object argument. When an attribute containing a mutex expression is attached to a method, the expression may refer to formal parameters of the method. Actual arguments must be substituted for formal parameters to derive the appropriate mutex expression in the lexical context where the function is called. PrevCtx holds the context in which the arguments themselves should be evaluated; multiple calling contexts can be chained together by the lock_returned attribute. More... | |
Public Member Functions | |
SExprBuilder (til::MemRegionRef A) | |
CapabilityExpr | translateAttrExpr (const Expr *AttrExp, const NamedDecl *D, const Expr *DeclExp, VarDecl *SelfD=nullptr) |
Translate a clang expression in an attribute to a til::SExpr. Constructs the context from D, DeclExp, and SelfDecl. | |
CapabilityExpr | translateAttrExpr (const Expr *AttrExp, CallingContext *Ctx) |
Translate a clang expression in an attribute to a til::SExpr. | |
til::SExpr * | translate (const Stmt *S, CallingContext *Ctx) |
til::SCFG * | buildCFG (CFGWalker &Walker) |
til::SExpr * | lookupStmt (const Stmt *S) |
til::BasicBlock * | lookupBlock (const CFGBlock *B) |
const til::SCFG * | getCFG () const |
til::SCFG * | getCFG () |
Friends | |
class | CFGWalker |
Definition at line 306 of file ThreadSafetyCommon.h.
Definition at line 331 of file ThreadSafetyCommon.h.
References clang::threadSafety::til::Variable::setKind(), and clang::threadSafety::til::Variable::VK_SFun.
til::SCFG * clang::threadSafety::SExprBuilder::buildCFG | ( | CFGWalker & | Walker | ) |
Definition at line 86 of file ThreadSafetyCommon.cpp.
References clang::threadSafety::CFGWalker::walk().
const til::SCFG* clang::threadSafety::SExprBuilder::getCFG | ( | ) | const [inline] |
Definition at line 358 of file ThreadSafetyCommon.h.
til::SCFG* clang::threadSafety::SExprBuilder::getCFG | ( | ) | [inline] |
Definition at line 359 of file ThreadSafetyCommon.h.
til::BasicBlock* clang::threadSafety::SExprBuilder::lookupBlock | ( | const CFGBlock * | B | ) | [inline] |
Definition at line 354 of file ThreadSafetyCommon.h.
References clang::CFGBlock::getBlockID().
til::SExpr * clang::threadSafety::SExprBuilder::lookupStmt | ( | const Stmt * | S | ) |
Definition at line 78 of file ThreadSafetyCommon.cpp.
Referenced by translate().
til::SExpr * clang::threadSafety::SExprBuilder::translate | ( | const Stmt * | S, |
CallingContext * | Ctx | ||
) |
Definition at line 213 of file ThreadSafetyCommon.cpp.
References clang::Stmt::getStmtClass(), and lookupStmt().
Referenced by translateAttrExpr().
CapabilityExpr clang::threadSafety::SExprBuilder::translateAttrExpr | ( | const Expr * | AttrExp, |
const NamedDecl * | D, | ||
const Expr * | DeclExp, | ||
VarDecl * | SelfDecl = nullptr |
||
) |
Translate a clang expression in an attribute to a til::SExpr. Constructs the context from D, DeclExp, and SelfDecl.
AttrExp | The expression to translate. |
D | The declaration to which the attribute is attached. |
DeclExp | An expression involving the Decl to which the attribute is attached. E.g. the call to a function. |
Definition at line 106 of file ThreadSafetyCommon.cpp.
References clang::threadSafety::SExprBuilder::CallingContext::FunArgs, clang::Decl::getLocation(), clang::ValueDecl::getType(), clang::threadSafety::isCalleeArrow(), clang::threadSafety::SExprBuilder::CallingContext::NumArgs, clang::threadSafety::SExprBuilder::CallingContext::SelfArg, clang::threadSafety::SExprBuilder::CallingContext::SelfArrow, and clang::VK_LValue.
Referenced by clang::threadSafety::ThreadSafetyAnalyzer::getMutexIDs().
CapabilityExpr clang::threadSafety::SExprBuilder::translateAttrExpr | ( | const Expr * | AttrExp, |
CallingContext * | Ctx | ||
) |
Translate a clang expression in an attribute to a til::SExpr.
Definition at line 164 of file ThreadSafetyCommon.cpp.
References clang::threadSafety::til::CAST_objToPtr, translate(), and clang::UO_LNot.
friend class CFGWalker [friend] |
Definition at line 431 of file ThreadSafetyCommon.h.