clang 20.0.0git
|
WhileStmt - This represents a 'while' stmt. More...
#include "clang/AST/Stmt.h"
Public Member Functions | |
bool | hasVarStorage () const |
True if this WhileStmt has storage for a condition variable. | |
Expr * | getCond () |
const Expr * | getCond () const |
void | setCond (Expr *Cond) |
Stmt * | getBody () |
const Stmt * | getBody () const |
void | setBody (Stmt *Body) |
VarDecl * | getConditionVariable () |
Retrieve the variable declared in this "while" statement, if any. | |
const VarDecl * | getConditionVariable () const |
void | setConditionVariable (const ASTContext &Ctx, VarDecl *V) |
Set the condition variable of this while statement. | |
DeclStmt * | getConditionVariableDeclStmt () |
If this WhileStmt has a condition variable, return the faux DeclStmt associated with the creation of that condition variable. | |
const DeclStmt * | getConditionVariableDeclStmt () const |
void | setConditionVariableDeclStmt (DeclStmt *CondVar) |
SourceLocation | getWhileLoc () const |
void | setWhileLoc (SourceLocation L) |
SourceLocation | getLParenLoc () const |
void | setLParenLoc (SourceLocation L) |
SourceLocation | getRParenLoc () const |
void | setRParenLoc (SourceLocation L) |
SourceLocation | getBeginLoc () const |
SourceLocation | getEndLoc () const LLVM_READONLY |
child_range | children () |
const_child_range | children () const |
Public Member Functions inherited from clang::Stmt | |
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 WhileStmt * | Create (const ASTContext &Ctx, VarDecl *Var, Expr *Cond, Stmt *Body, SourceLocation WL, SourceLocation LParenLoc, SourceLocation RParenLoc) |
Create a while statement. | |
static WhileStmt * | CreateEmpty (const ASTContext &Ctx, bool HasVar) |
Create an empty while statement optionally with storage for a condition variable. | |
static bool | classof (const Stmt *T) |
Static Public Member Functions inherited from clang::Stmt | |
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) |
|
inline |
|
inline |
|
static |
Create a while statement.
Definition at line 1143 of file Stmt.cpp.
References clang::ASTContext::Allocate().
Referenced by clang::Sema::ActOnWhileStmt(), and clang::ASTNodeImporter::VisitWhileStmt().
|
static |
Create an empty while statement optionally with storage for a condition variable.
Definition at line 1154 of file Stmt.cpp.
References clang::ASTContext::Allocate().
|
inline |
Definition at line 2706 of file Stmt.h.
References getWhileLoc().
|
inline |
Definition at line 2653 of file Stmt.h.
Referenced by EvaluateStmt(), getEndLoc(), and isIdenticalStmt().
|
inline |
Definition at line 2641 of file Stmt.h.
Referenced by EvaluateStmt(), and isIdenticalStmt().
VarDecl * WhileStmt::getConditionVariable | ( | ) |
Retrieve the variable declared in this "while" statement, if any.
In the following example, "x" is the condition variable.
Definition at line 1161 of file Stmt.cpp.
References getConditionVariableDeclStmt().
Referenced by EvaluateStmt(), and getConditionVariable().
|
inline |
Definition at line 2671 of file Stmt.h.
References getConditionVariable().
|
inline |
If this WhileStmt has a condition variable, return the faux DeclStmt associated with the creation of that condition variable.
Definition at line 2681 of file Stmt.h.
References hasVarStorage().
Referenced by getConditionVariable().
|
inline |
Definition at line 2687 of file Stmt.h.
References hasVarStorage().
|
inline |
Definition at line 2707 of file Stmt.h.
References getBody(), and clang::Stmt::getEndLoc().
|
inline |
|
inline |
|
inline |
Definition at line 2698 of file Stmt.h.
References clang::Stmt::WhileStmtBits.
Referenced by getBeginLoc().
|
inline |
True if this WhileStmt has storage for a condition variable.
Definition at line 2639 of file Stmt.h.
References clang::Stmt::WhileStmtBits.
Referenced by getConditionVariableDeclStmt(), setConditionVariable(), setConditionVariableDeclStmt(), and clang::JSONNodeDumper::VisitWhileStmt().
void WhileStmt::setConditionVariable | ( | const ASTContext & | Ctx, |
VarDecl * | V | ||
) |
Set the condition variable of this while statement.
The while statement must have storage for it.
Definition at line 1168 of file Stmt.cpp.
References clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), hasVarStorage(), and V.
|
inline |
Definition at line 2693 of file Stmt.h.
References hasVarStorage().
|
inline |
|
inline |
|
inline |
Definition at line 2699 of file Stmt.h.
References clang::Stmt::WhileStmtBits.