clang 20.0.0git
|
ReturnStmt - This represents a return, optionally of an expression: return; return 4;. More...
#include "clang/AST/Stmt.h"
Public Member Functions | |
Expr * | getRetValue () |
const Expr * | getRetValue () const |
void | setRetValue (Expr *E) |
const VarDecl * | getNRVOCandidate () const |
Retrieve the variable that might be used for the named return value optimization. | |
void | setNRVOCandidate (const VarDecl *Var) |
Set the variable that might be used for the named return value optimization. | |
SourceLocation | getReturnLoc () const |
void | setReturnLoc (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 ReturnStmt * | Create (const ASTContext &Ctx, SourceLocation RL, Expr *E, const VarDecl *NRVOCandidate) |
Create a return statement. | |
static ReturnStmt * | CreateEmpty (const ASTContext &Ctx, bool HasNRVOCandidate) |
Create an empty return statement, optionally with storage for an NRVO candidate. | |
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) |
ReturnStmt - This represents a return, optionally of an expression: return; return 4;.
Note that GCC allows return with no argument in a function declared to return a value, and it allows returning a value in functions declared to return void. We explicitly model this in the AST, which means you can't depend on the return type of the function and the presence of an argument.
|
inline |
|
inline |
|
static |
Create a return statement.
Definition at line 1204 of file Stmt.cpp.
References clang::ASTContext::Allocate(), and E.
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::BuildReturnStmt(), and clang::ASTNodeImporter::VisitReturnStmt().
|
static |
Create an empty return statement, optionally with storage for an NRVO candidate.
Definition at line 1212 of file Stmt.cpp.
References clang::ASTContext::Allocate().
|
inline |
Definition at line 3086 of file Stmt.h.
References getReturnLoc().
Referenced by clang::Sema::deduceClosureReturnType().
|
inline |
Definition at line 3087 of file Stmt.h.
References clang::Stmt::getEndLoc(), and getReturnLoc().
|
inline |
|
inline |
Definition at line 3083 of file Stmt.h.
References clang::Stmt::ReturnStmtBits.
Referenced by getBeginLoc(), and getEndLoc().
|
inline |
Definition at line 3060 of file Stmt.h.
Referenced by adjustBlockReturnsToEnum(), clang::Sema::checkAndRewriteMustTailAttr(), clang::Sema::deduceClosureReturnType(), findEnumForBlockReturn(), isIdenticalStmt(), clang::ento::ExprEngine::VisitReturnStmt(), clang::interp::Compiler< Emitter >::visitReturnStmt(), and clang::TrivialFunctionAnalysisVisitor::VisitReturnStmt().
|
inline |
|
inline |
Set the variable that might be used for the named return value optimization.
The return statement must have storage for it, which is the case if and only if hasNRVOCandidate() is true.
Definition at line 3077 of file Stmt.h.
Referenced by clang::Sema::computeNRVO().
|
inline |
Definition at line 3084 of file Stmt.h.
References clang::Stmt::ReturnStmtBits.
|
inline |
Definition at line 3062 of file Stmt.h.
References E.
Referenced by adjustBlockReturnsToEnum(), and clang::Sema::checkAndRewriteMustTailAttr().