clang
6.0.0
|
#include "/work/www-prereleases/6.0.0/rc2/docsbuild/llvm.src/tools/clang/lib/Sema/CoroutineStmtBuilder.h"
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 | |
![]() | |
Stmt * | Body = nullptr |
Stmt * | Promise = nullptr |
Expr * | InitialSuspend = nullptr |
Expr * | FinalSuspend = nullptr |
Stmt * | OnException = nullptr |
Stmt * | OnFallthrough = nullptr |
Expr * | Allocate = nullptr |
Expr * | Deallocate = nullptr |
Expr * | ReturnValue = nullptr |
Stmt * | ResultDecl = nullptr |
Stmt * | ReturnStmt = nullptr |
Stmt * | ReturnStmtOnAllocFailure = nullptr |
ArrayRef< Stmt * > | ParamMoves |
Definition at line 25 of file CoroutineStmtBuilder.h.
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.
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().
bool CoroutineStmtBuilder::buildParameterMoves | ( | ) |
Build just parameter moves. To use for rebuilding in TreeTransform.
Definition at line 889 of file SemaCoroutine.cpp.
References clang::Sema::ActOnDeclStmt(), clang::Sema::ConvertDeclToDeclGroup(), clang::sema::FunctionScopeInfo::CoroutinePromise, clang::sema::FunctionScopeInfo::CoroutineSuspends, clang::CoroutineBodyStmt::CtorArgs::FinalSuspend, clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::sema::FunctionScopeInfo::hasInvalidCoroutineSuspends(), clang::CoroutineBodyStmt::CtorArgs::InitialSuspend, clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::CoroutineBodyStmt::CtorArgs::ParamMoves, and clang::CoroutineBodyStmt::CtorArgs::Promise.
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().
|
inline |
Definition at line 57 of file CoroutineStmtBuilder.h.