14 #ifndef LLVM_CLANG_LIB_SEMA_COROUTINESTMTBUILDER_H 15 #define LLVM_CLANG_LIB_SEMA_COROUTINESTMTBUILDER_H 32 const bool IsPromiseDependentType;
60 bool makePromiseStmt();
61 bool makeInitialAndFinalSuspend();
62 bool makeNewAndDeleteExpr();
63 bool makeOnFallthrough();
64 bool makeOnException();
65 bool makeReturnObject();
66 bool makeGroDeclAndReturnStmt();
67 bool makeReturnOnAllocFailure();
68 bool makeParamMoves();
73 #endif // LLVM_CLANG_LIB_SEMA_COROUTINESTMTBUILDER_H An instance of this class is created to represent a function declaration or definition.
Stmt - This represents one statement.
Retains information about a function, method, or block that is currently being parsed.
Defines the clang::Expr interface and subclasses for C++ expressions.
Sema - This implements semantic analysis and AST building for C.
Defines the clang::Preprocessor interface.
bool buildStatements()
Build the coroutine body statements, including the "promise dependent" statements when the promise ty...
Encodes a location in the source.
Dataflow Directional Tag Classes.
CoroutineStmtBuilder(Sema &S, FunctionDecl &FD, sema::FunctionScopeInfo &Fn, Stmt *Body)
Construct a CoroutineStmtBuilder and initialize the promise statement and initial/final suspends from...
Represents a C++ struct/union/class.
bool buildDependentStatements()
Build the coroutine body statements that require a non-dependent promise type in order to construct...
bool buildParameterMoves()
Build just parameter moves. To use for rebuilding in TreeTransform.