clang  6.0.0svn
Public Member Functions | List of all members
clang::CoroutineStmtBuilder Class Reference

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h"

Inheritance diagram for clang::CoroutineStmtBuilder:
Inheritance graph
[legend]
Collaboration diagram for clang::CoroutineStmtBuilder:
Collaboration 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. More...
 
bool buildStatements ()
 Build the coroutine body statements, including the "promise dependent" statements when the promise type is not dependent. More...
 
bool buildDependentStatements ()
 Build the coroutine body statements that require a non-dependent promise type in order to construct. More...
 
bool buildParameterMoves ()
 Build just parameter moves. To use for rebuilding in TreeTransform. More...
 
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
 
ExprReturnValue = nullptr
 
StmtResultDecl = nullptr
 
StmtReturnStmt = nullptr
 
StmtReturnStmtOnAllocFailure = nullptr
 
ArrayRef< Stmt * > ParamMoves
 

Detailed Description

Definition at line 25 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 856 of file SemaCoroutine.cpp.

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 879 of file SemaCoroutine.cpp.

Referenced by buildStatements().

◆ buildParameterMoves()

bool CoroutineStmtBuilder::buildParameterMoves ( )

◆ buildStatements()

bool CoroutineStmtBuilder::buildStatements ( )

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

Definition at line 871 of file SemaCoroutine.cpp.

References buildDependentStatements().

◆ isInvalid()

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

Definition at line 57 of file CoroutineStmtBuilder.h.


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