|
clang
5.0.0
|
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 | |
| 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 825 of file SemaCoroutine.cpp.
References clang::CoroutineBodyStmt::CtorArgs::Body, clang::sema::FunctionScopeInfo::CoroutinePromise, clang::Type::getAsCXXRecordDecl(), and clang::ValueDecl::getType().
| 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 848 of file SemaCoroutine.cpp.
Referenced by buildStatements().
| bool CoroutineStmtBuilder::buildParameterMoves | ( | ) |
Build just parameter moves. To use for rebuilding in TreeTransform.
Definition at line 858 of file SemaCoroutine.cpp.
References clang::CoroutineBodyStmt::CtorArgs::ParamMoves.
| bool CoroutineStmtBuilder::buildStatements | ( | ) |
Build the coroutine body statements, including the "promise dependent" statements when the promise type is not dependent.
Definition at line 840 of file SemaCoroutine.cpp.
References buildDependentStatements().
Referenced by clang::Sema::CheckCompletedCoroutineBody().
|
inline |
Definition at line 57 of file CoroutineStmtBuilder.h.
Referenced by clang::Sema::CheckCompletedCoroutineBody().
1.8.6