class ConstructionContextItem
Declaration
class ConstructionContextItem { /* full declaration omitted */ };
Description
Represents a single point (AST node) in the program that requires attention during construction of an object. ConstructionContext would be represented as a list of such items.
Declared at: clang/include/clang/Analysis/ConstructionContext.h:28
Member Variables
- private const void* const Data
- private const clang::ConstructionContextItem::ItemKind Kind
- private const unsigned int Index = 0
Method Overview
- public ConstructionContextItem(const clang::LambdaExpr * LE, unsigned int Index)
- public ConstructionContextItem(const clang::CXXCtorInitializer * Init)
- public ConstructionContextItem(const clang::Expr * E, unsigned int Index)
- public ConstructionContextItem(const clang::DeclStmt * DS)
- public ConstructionContextItem(const clang::CXXNewExpr * NE)
- public ConstructionContextItem(const clang::ReturnStmt * RS)
- public ConstructionContextItem(const clang::MaterializeTemporaryExpr * MTE)
- public ConstructionContextItem(const clang::CXXBindTemporaryExpr * BTE, bool IsElided = false)
- public ConstructionContextItem(const clang::CXXConstructExpr * CE)
- public ConstructionContextItem(const clang::CallExpr * CE, unsigned int Index)
- public ConstructionContextItem(const clang::CXXConstructExpr * CE, unsigned int Index)
- public ConstructionContextItem(const clang::CXXInheritedCtorInitExpr * CE, unsigned int Index)
- public ConstructionContextItem(const clang::ObjCMessageExpr * ME, unsigned int Index)
- public void Profile(llvm::FoldingSetNodeID & ID) const
- public const clang::CXXCtorInitializer * getCXXCtorInitializer() const
- public unsigned int getIndex() const
- public clang::ConstructionContextItem::ItemKind getKind() const
- public llvm::StringRef getKindAsString() const
- public static llvm::StringRef getKindAsString(clang::ConstructionContextItem::ItemKind K)
- public const clang::Stmt * getStmt() const
- public const clang::Stmt * getStmtOrNull() const
- private bool hasIndex() const
- private bool hasInitializer() const
- private bool hasStatement() const
Methods
¶ConstructionContextItem(
const clang::LambdaExpr* LE,
unsigned int Index)
ConstructionContextItem(
const clang::LambdaExpr* LE,
unsigned int Index)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:133
Parameters
- const clang::LambdaExpr* LE
- unsigned int Index
¶ConstructionContextItem(
const clang::CXXCtorInitializer* Init)
ConstructionContextItem(
const clang::CXXCtorInitializer* Init)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:130
Parameters
- const clang::CXXCtorInitializer* Init
¶ConstructionContextItem(const clang::Expr* E,
unsigned int Index)
ConstructionContextItem(const clang::Expr* E,
unsigned int Index)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:123
Parameters
- const clang::Expr* E
- unsigned int Index
¶ConstructionContextItem(const clang::DeclStmt* DS)
ConstructionContextItem(const clang::DeclStmt* DS)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:90
Parameters
- const clang::DeclStmt* DS
¶ConstructionContextItem(
const clang::CXXNewExpr* NE)
ConstructionContextItem(
const clang::CXXNewExpr* NE)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:93
Parameters
- const clang::CXXNewExpr* NE
¶ConstructionContextItem(
const clang::ReturnStmt* RS)
ConstructionContextItem(
const clang::ReturnStmt* RS)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:96
Parameters
- const clang::ReturnStmt* RS
¶ConstructionContextItem(
const clang::MaterializeTemporaryExpr* MTE)
ConstructionContextItem(
const clang::MaterializeTemporaryExpr* MTE)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:99
Parameters
- const clang::MaterializeTemporaryExpr* MTE
¶ConstructionContextItem(
const clang::CXXBindTemporaryExpr* BTE,
bool IsElided = false)
ConstructionContextItem(
const clang::CXXBindTemporaryExpr* BTE,
bool IsElided = false)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:102
Parameters
- const clang::CXXBindTemporaryExpr* BTE
- bool IsElided = false
¶ConstructionContextItem(
const clang::CXXConstructExpr* CE)
ConstructionContextItem(
const clang::CXXConstructExpr* CE)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:107
Parameters
- const clang::CXXConstructExpr* CE
¶ConstructionContextItem(const clang::CallExpr* CE,
unsigned int Index)
ConstructionContextItem(const clang::CallExpr* CE,
unsigned int Index)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:110
Parameters
- const clang::CallExpr* CE
- unsigned int Index
¶ConstructionContextItem(
const clang::CXXConstructExpr* CE,
unsigned int Index)
ConstructionContextItem(
const clang::CXXConstructExpr* CE,
unsigned int Index)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:113
Parameters
- const clang::CXXConstructExpr* CE
- unsigned int Index
¶ConstructionContextItem(
const clang::CXXInheritedCtorInitExpr* CE,
unsigned int Index)
ConstructionContextItem(
const clang::CXXInheritedCtorInitExpr* CE,
unsigned int Index)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:116
Parameters
- const clang::CXXInheritedCtorInitExpr* CE
- unsigned int Index
¶ConstructionContextItem(
const clang::ObjCMessageExpr* ME,
unsigned int Index)
ConstructionContextItem(
const clang::ObjCMessageExpr* ME,
unsigned int Index)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:119
Parameters
- const clang::ObjCMessageExpr* ME
- unsigned int Index
¶void Profile(llvm::FoldingSetNodeID& ID) const
void Profile(llvm::FoldingSetNodeID& ID) const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:174
Parameters
¶const clang::CXXCtorInitializer*
getCXXCtorInitializer() const
const clang::CXXCtorInitializer*
getCXXCtorInitializer() const
Description
The construction site is not necessarily a statement. It may also be a CXXCtorInitializer, which means that a member variable is being constructed during initialization of the object that contains it.
Declared at: clang/include/clang/Analysis/ConstructionContext.h:158
¶unsigned int getIndex() const
unsigned int getIndex() const
Description
If a single trigger statement triggers multiple constructors, they are usually being enumerated. This covers function argument constructors triggered by a call-expression and items in an initializer list triggered by an init-list-expression.
Declared at: clang/include/clang/Analysis/ConstructionContext.h:167
¶clang::ConstructionContextItem::ItemKind getKind()
const
clang::ConstructionContextItem::ItemKind getKind()
const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:136
¶llvm::StringRef getKindAsString() const
llvm::StringRef getKindAsString() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:138
¶static llvm::StringRef getKindAsString(
clang::ConstructionContextItem::ItemKind K)
static llvm::StringRef getKindAsString(
clang::ConstructionContextItem::ItemKind K)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:49
Parameters
- clang::ConstructionContextItem::ItemKind K
¶const clang::Stmt* getStmt() const
const clang::Stmt* getStmt() const
Description
The construction site - the statement that triggered the construction for one of its parts. For instance, stack variable declaration statement triggers construction of itself or its elements if it's an array, new-expression triggers construction of the newly allocated object(s).
Declared at: clang/include/clang/Analysis/ConstructionContext.h:146
¶const clang::Stmt* getStmtOrNull() const
const clang::Stmt* getStmtOrNull() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:151
¶bool hasIndex() const
bool hasIndex() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:76
¶bool hasInitializer() const
bool hasInitializer() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:81
¶bool hasStatement() const
bool hasStatement() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:71