clang 22.0.0git
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:
[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 1223 of file SemaCoroutine.cpp.

References clang::CoroutineBodyStmt::CtorArgs::Body, buildCoroutineBody(), getType(), 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 1251 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 1243 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: