clang 20.0.0git
Public Member Functions | List of all members
clang::CoroutineStmtBuilder Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Sema/CoroutineStmtBuilder.h"

Inheritance diagram for clang::CoroutineStmtBuilder:
Inheritance graph
[legend]

Public Member Functions

 CoroutineStmtBuilder (Sema &S, FunctionDecl &FD, sema::FunctionScopeInfo &Fn, Stmt *Body)
 Construct a CoroutineStmtBuilder and initialize the promise statement and initial/final suspends from the FunctionScopeInfo.
 
bool buildStatements ()
 Build the coroutine body statements, including the "promise dependent" statements when the promise type is not dependent.
 
bool buildDependentStatements ()
 Build the coroutine body statements that require a non-dependent promise type in order to construct.
 
bool isInvalid () const
 

Additional Inherited Members

- Public Attributes inherited from clang::CoroutineBodyStmt::CtorArgs
StmtBody = nullptr
 
StmtPromise = nullptr
 
ExprInitialSuspend = nullptr
 
ExprFinalSuspend = nullptr
 
StmtOnException = nullptr
 
StmtOnFallthrough = nullptr
 
ExprAllocate = nullptr
 
ExprDeallocate = nullptr
 
StmtResultDecl = nullptr
 
ExprReturnValue = nullptr
 
StmtReturnStmt = nullptr
 
StmtReturnStmtOnAllocFailure = nullptr
 
ArrayRef< Stmt * > ParamMoves
 

Detailed Description

Definition at line 24 of file CoroutineStmtBuilder.h.

Constructor & Destructor Documentation

◆ CoroutineStmtBuilder()

CoroutineStmtBuilder::CoroutineStmtBuilder ( Sema S,
FunctionDecl FD,
sema::FunctionScopeInfo Fn,
Stmt Body 
)

Construct a CoroutineStmtBuilder and initialize the promise statement and initial/final suspends from the FunctionScopeInfo.

Definition at line 1199 of file SemaCoroutine.cpp.

References clang::CoroutineBodyStmt::CtorArgs::Body, buildCoroutineBody(), clang::Sema::getASTContext(), and clang::CoroutineBodyStmt::CtorArgs::ParamMoves.

Member Function Documentation

◆ buildDependentStatements()

bool CoroutineStmtBuilder::buildDependentStatements ( )

Build the coroutine body statements that require a non-dependent promise type in order to construct.

For example different new/delete overloads are selected depending on if the promise type provides unhandled_exception(), and therefore they cannot be built until the promise type is complete so that we can perform name lookup.

Definition at line 1227 of file SemaCoroutine.cpp.

Referenced by buildStatements().

◆ buildStatements()

bool CoroutineStmtBuilder::buildStatements ( )

Build the coroutine body statements, including the "promise dependent" statements when the promise type is not dependent.

Definition at line 1219 of file SemaCoroutine.cpp.

References buildDependentStatements().

◆ isInvalid()

bool clang::CoroutineStmtBuilder::isInvalid ( ) const
inline

Definition at line 53 of file CoroutineStmtBuilder.h.


The documentation for this class was generated from the following files: