clang 20.0.0git
|
CaseStmt - Represent a case statement. More...
#include "clang/AST/Stmt.h"
Public Member Functions | |
bool | caseStmtIsGNURange () const |
True if this case statement is of the form case LHS ... RHS, which is a GNU extension. | |
SourceLocation | getCaseLoc () const |
void | setCaseLoc (SourceLocation L) |
SourceLocation | getEllipsisLoc () const |
Get the location of the ... in a case statement of the form LHS ... RHS. | |
void | setEllipsisLoc (SourceLocation L) |
Set the location of the ... in a case statement of the form LHS ... RHS. | |
Expr * | getLHS () |
const Expr * | getLHS () const |
void | setLHS (Expr *Val) |
Expr * | getRHS () |
const Expr * | getRHS () const |
void | setRHS (Expr *Val) |
Stmt * | getSubStmt () |
const Stmt * | getSubStmt () const |
void | setSubStmt (Stmt *S) |
SourceLocation | getBeginLoc () const |
SourceLocation | getEndLoc () const LLVM_READONLY |
child_range | children () |
const_child_range | children () const |
Public Member Functions inherited from clang::SwitchCase | |
const SwitchCase * | getNextSwitchCase () const |
SwitchCase * | getNextSwitchCase () |
void | setNextSwitchCase (SwitchCase *SC) |
SourceLocation | getKeywordLoc () const |
void | setKeywordLoc (SourceLocation L) |
SourceLocation | getColonLoc () const |
void | setColonLoc (SourceLocation L) |
Stmt * | getSubStmt () |
const Stmt * | getSubStmt () const |
SourceLocation | getBeginLoc () const |
SourceLocation | getEndLoc () const LLVM_READONLY |
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 CaseStmt * | Create (const ASTContext &Ctx, Expr *lhs, Expr *rhs, SourceLocation caseLoc, SourceLocation ellipsisLoc, SourceLocation colonLoc) |
Build a case statement. | |
static CaseStmt * | CreateEmpty (const ASTContext &Ctx, bool CaseStmtIsGNURange) |
Build an empty case statement. | |
static bool | classof (const Stmt *T) |
Static Public Member Functions inherited from clang::SwitchCase | |
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) |
CaseStmt - Represent a case statement.
It can optionally be a GNU case statement of the form LHS ... RHS representing a range of cases.
|
inline |
True if this case statement is of the form case LHS ... RHS, which is a GNU extension.
In this case the RHS can be obtained with getRHS() and the location of the ellipsis can be obtained with getEllipsisLoc().
Definition at line 1905 of file Stmt.h.
References clang::Stmt::SwitchCaseBits.
Referenced by getEllipsisLoc(), getRHS(), setEllipsisLoc(), setRHS(), and clang::JSONNodeDumper::VisitCaseStmt().
|
inline |
|
inline |
|
static |
Build a case statement.
Definition at line 1218 of file Stmt.cpp.
References clang::ASTContext::Allocate().
Referenced by clang::Sema::ActOnCaseStmt(), and clang::ASTNodeImporter::VisitCaseStmt().
|
static |
Build an empty case statement.
Definition at line 1229 of file Stmt.cpp.
References clang::ASTContext::Allocate().
|
inline |
Definition at line 1964 of file Stmt.h.
References clang::SwitchCase::getKeywordLoc().
|
inline |
Definition at line 1907 of file Stmt.h.
References clang::SwitchCase::getKeywordLoc().
|
inline |
Get the location of the ... in a case statement of the form LHS ... RHS.
Definition at line 1911 of file Stmt.h.
References caseStmtIsGNURange().
|
inline |
Definition at line 1965 of file Stmt.h.
References clang::Stmt::getEndLoc(), and getSubStmt().
|
inline |
Definition at line 1925 of file Stmt.h.
Referenced by clang::Sema::ActOnFinishSwitchStmt(), clang::SemaCodeCompletion::CodeCompleteCase(), EvaluateSwitch(), FindCaseStatementsForValue(), clang::ento::ExprEngine::processSwitch(), and shouldAddCase().
|
inline |
Definition at line 1937 of file Stmt.h.
References caseStmtIsGNURange().
Referenced by clang::Sema::ActOnFinishSwitchStmt(), EvaluateSwitch(), FindCaseStatementsForValue(), clang::ento::ExprEngine::processSwitch(), and shouldAddCase().
|
inline |
Definition at line 1943 of file Stmt.h.
References caseStmtIsGNURange().
|
inline |
Definition at line 1955 of file Stmt.h.
Referenced by getEndLoc().
|
inline |
Definition at line 1908 of file Stmt.h.
References clang::SwitchCase::setKeywordLoc().
|
inline |
Set the location of the ... in a case statement of the form LHS ... RHS.
Assert that this case statement is of this form.
Definition at line 1918 of file Stmt.h.
References caseStmtIsGNURange().
|
inline |
Definition at line 1949 of file Stmt.h.
References caseStmtIsGNURange().