clang
8.0.0
|
#include "/work/www-prereleases/8.0.0/rc3/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 | 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 968 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 996 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(), and clang::CoroutineBodyStmt::CtorArgs::Promise.
Referenced by buildStatements().
bool CoroutineStmtBuilder::buildStatements | ( | ) |
Build the coroutine body statements, including the "promise dependent" statements when the promise type is not dependent.
Definition at line 988 of file SemaCoroutine.cpp.
References buildDependentStatements().
|
inline |
Definition at line 54 of file CoroutineStmtBuilder.h.