clang 22.0.0git
|
DeclStmt - Adaptor class for mixing declarations with statements and expressions. More...
#include "clang/AST/Stmt.h"
Public Types | |
using | decl_iterator = DeclGroupRef::iterator |
using | const_decl_iterator = DeclGroupRef::const_iterator |
using | decl_range = llvm::iterator_range< decl_iterator > |
using | decl_const_range = llvm::iterator_range< const_decl_iterator > |
using | reverse_decl_iterator = std::reverse_iterator< decl_iterator > |
![]() | |
enum | StmtClass { NoStmtClass = 0 } |
enum | Likelihood { LH_Unlikely = -1 , LH_None , LH_Likely } |
The likelihood of a branch being taken. More... | |
using | child_iterator = StmtIterator |
Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpressions of an AST node. | |
using | const_child_iterator = ConstStmtIterator |
using | child_range = llvm::iterator_range< child_iterator > |
using | const_child_range = llvm::iterator_range< const_child_iterator > |
Public Member Functions | |
DeclStmt (DeclGroupRef dg, SourceLocation startLoc, SourceLocation endLoc) | |
DeclStmt (EmptyShell Empty) | |
Build an empty declaration statement. | |
bool | isSingleDecl () const |
isSingleDecl - This method returns true if this DeclStmt refers to a single Decl. | |
const Decl * | getSingleDecl () const |
Decl * | getSingleDecl () |
const DeclGroupRef | getDeclGroup () const |
DeclGroupRef | getDeclGroup () |
void | setDeclGroup (DeclGroupRef DGR) |
void | setStartLoc (SourceLocation L) |
SourceLocation | getEndLoc () const |
void | setEndLoc (SourceLocation L) |
SourceLocation | getBeginLoc () const LLVM_READONLY |
child_range | children () |
const_child_range | children () const |
decl_range | decls () |
decl_const_range | decls () const |
decl_iterator | decl_begin () |
decl_iterator | decl_end () |
const_decl_iterator | decl_begin () const |
const_decl_iterator | decl_end () const |
reverse_decl_iterator | decl_rbegin () |
reverse_decl_iterator | decl_rend () |
![]() | |
void * | operator new (size_t bytes, const ASTContext &C, unsigned alignment=8) |
void * | operator new (size_t bytes, const ASTContext *C, unsigned alignment=8) |
void * | operator new (size_t bytes, void *mem) noexcept |
void | operator delete (void *, const ASTContext &, unsigned) noexcept |
void | operator delete (void *, const ASTContext *, unsigned) noexcept |
void | operator delete (void *, size_t) noexcept |
void | operator delete (void *, void *) noexcept |
Stmt ()=delete | |
Stmt (const Stmt &)=delete | |
Stmt (Stmt &&)=delete | |
Stmt & | operator= (const Stmt &)=delete |
Stmt & | operator= (Stmt &&)=delete |
Stmt (StmtClass SC) | |
StmtClass | getStmtClass () const |
const char * | getStmtClassName () const |
SourceRange | getSourceRange () const LLVM_READONLY |
SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. | |
SourceLocation | getBeginLoc () const LLVM_READONLY |
SourceLocation | getEndLoc () const LLVM_READONLY |
void | dump () const |
Dumps the specified AST fragment and all subtrees to llvm::errs() . | |
void | dump (raw_ostream &OS, const ASTContext &Context) const |
int64_t | getID (const ASTContext &Context) const |
void | dumpColor () const |
dumpColor - same as dump(), but forces color highlighting. | |
void | dumpPretty (const ASTContext &Context) const |
dumpPretty/printPretty - These two methods do a "pretty print" of the AST back to its original source language syntax. | |
void | printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const |
void | printPrettyControlled (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const |
void | printJson (raw_ostream &Out, PrinterHelper *Helper, const PrintingPolicy &Policy, bool AddQuotes) const |
Pretty-prints in JSON format. | |
void | viewAST () const |
viewAST - Visualize an AST rooted at this Stmt* using GraphViz. | |
Stmt * | IgnoreContainers (bool IgnoreCaptured=false) |
Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true. | |
const Stmt * | IgnoreContainers (bool IgnoreCaptured=false) const |
const Stmt * | stripLabelLikeStatements () const |
Strip off all label-like statements. | |
Stmt * | stripLabelLikeStatements () |
child_range | children () |
const_child_range | children () const |
child_iterator | child_begin () |
child_iterator | child_end () |
const_child_iterator | child_begin () const |
const_child_iterator | child_end () const |
void | Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical, bool ProfileLambdaExpr=false) const |
Produce a unique representation of the given statement. | |
void | ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const |
Calculate a unique representation for a statement that is stable across compiler invocations. | |
Static Public Member Functions | |
static bool | classof (const Stmt *T) |
![]() | |
static void | addStmtClass (const StmtClass s) |
static void | EnableStatistics () |
static void | PrintStats () |
static Likelihood | getLikelihood (ArrayRef< const Attr * > Attrs) |
static Likelihood | getLikelihood (const Stmt *S) |
static const Attr * | getLikelihoodAttr (const Stmt *S) |
static Likelihood | getLikelihood (const Stmt *Then, const Stmt *Else) |
static std::tuple< bool, const Attr *, const Attr * > | determineLikelihoodConflict (const Stmt *Then, const Stmt *Else) |
DeclStmt - Adaptor class for mixing declarations with statements and expressions.
For example, CompoundStmt mixes statements, expressions and declarations (variables, types). Another example is ForStmt, where the first statement can be an expression or a declaration.
using clang::DeclStmt::decl_const_range = llvm::iterator_range<const_decl_iterator> |
using clang::DeclStmt::decl_range = llvm::iterator_range<decl_iterator> |
using clang::DeclStmt::reverse_decl_iterator = std::reverse_iterator<decl_iterator> |
|
inline |
|
inlineexplicit |
|
inline |
Definition at line 1644 of file Stmt.h.
References clang::DeclGroupRef::begin(), and clang::DeclGroupRef::end().
Referenced by children().
|
inline |
Definition at line 1649 of file Stmt.h.
References children().
|
inline |
Definition at line 1665 of file Stmt.h.
References clang::DeclGroupRef::begin().
Referenced by decl_rend(), decls(), and clang::ento::ExprEngine::VisitDeclStmt().
|
inline |
Definition at line 1667 of file Stmt.h.
References clang::DeclGroupRef::begin().
|
inline |
Definition at line 1666 of file Stmt.h.
References clang::DeclGroupRef::end().
Referenced by decl_rbegin(), and decls().
|
inline |
Definition at line 1668 of file Stmt.h.
References clang::DeclGroupRef::end().
|
inline |
Definition at line 1672 of file Stmt.h.
References decl_end().
|
inline |
Definition at line 1676 of file Stmt.h.
References decl_begin().
|
inline |
Definition at line 1659 of file Stmt.h.
References decl_begin(), and decl_end().
Referenced by CheckConstexprDeclStmt(), EvaluateStmt(), clang::consumed::ConsumedStmtVisitor::VisitDeclStmt(), clang::lifetimes::internal::FactGenerator::VisitDeclStmt(), and clang::interp::Compiler< Emitter >::visitDeclStmt().
|
inline |
Definition at line 1661 of file Stmt.h.
References decl_begin(), and decl_end().
|
inline |
Definition at line 1637 of file Stmt.h.
Referenced by clang::Sema::ActOnCXXForRangeStmt(), addLoopPreInits(), and CheckConstexprDeclStmt().
|
inline |
|
inline |
Definition at line 1629 of file Stmt.h.
Referenced by addLoopPreInits().
|
inline |
Definition at line 1634 of file Stmt.h.
Referenced by addLoopPreInits().
|
inline |
Definition at line 1627 of file Stmt.h.
References clang::DeclGroupRef::getSingleDecl().
|
inline |
Definition at line 1626 of file Stmt.h.
References clang::DeclGroupRef::getSingleDecl().
Referenced by clang::Sema::ActOnCXXForRangeStmt(), clang::SemaOpenMP::ActOnOpenMPCanonicalLoop(), clang::Sema::BuildCXXForRangeStmt(), clang::VariableConstructionContext::getArrayInitLoop(), clang::CXXForRangeStmt::getRangeInit(), isInitializationOfVar(), REGISTER_TRAIT_WITH_PROGRAMSTATE(), and clang::consumed::ConsumedStmtVisitor::VisitDeclStmt().
|
inline |
isSingleDecl - This method returns true if this DeclStmt refers to a single Decl.
Definition at line 1624 of file Stmt.h.
References clang::DeclGroupRef::isSingleDecl().
Referenced by clang::Sema::ActOnCXXForRangeStmt(), clang::SemaOpenACC::ActOnEndRoutineStmtDirective(), clang::CFG::addSyntheticDeclStmt(), fixVariableWithArray(), fixVariableWithSpan(), clang::consumed::ConsumedStmtVisitor::VisitDeclStmt(), and clang::ento::ExprEngine::VisitDeclStmt().
|
inline |
|
inline |
|
inline |