clang
7.0.0
|
#include "CoroutineStmtBuilder.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/Decl.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/StmtCXX.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Sema/Initialization.h"
#include "clang/Sema/Overload.h"
#include "clang/Sema/ScopeInfo.h"
#include "clang/Sema/SemaInternal.h"
Go to the source code of this file.
Classes | |
struct | ReadySuspendResumeResult |
Functions | |
static LookupResult | lookupMember (Sema &S, const char *Name, CXXRecordDecl *RD, SourceLocation Loc, bool &Res) |
static bool | lookupMember (Sema &S, const char *Name, CXXRecordDecl *RD, SourceLocation Loc) |
static QualType | lookupPromiseType (Sema &S, const FunctionDecl *FD, SourceLocation KwLoc) |
Look up the std::coroutine_traits<...>::promise_type for the given function type. More... | |
static QualType | lookupCoroutineHandleType (Sema &S, QualType PromiseType, SourceLocation Loc) |
Look up the std::experimental::coroutine_handle<PromiseType>. More... | |
static bool | isValidCoroutineContext (Sema &S, SourceLocation Loc, StringRef Keyword) |
static ExprResult | buildOperatorCoawaitLookupExpr (Sema &SemaRef, Scope *S, SourceLocation Loc) |
static ExprResult | buildOperatorCoawaitCall (Sema &SemaRef, SourceLocation Loc, Expr *E, UnresolvedLookupExpr *Lookup) |
Build a call to 'operator co_await' if there is a suitable operator for the given expression. More... | |
static ExprResult | buildOperatorCoawaitCall (Sema &SemaRef, Scope *S, SourceLocation Loc, Expr *E) |
static Expr * | buildBuiltinCall (Sema &S, SourceLocation Loc, Builtin::ID Id, MultiExprArg CallArgs) |
static ExprResult | buildCoroutineHandle (Sema &S, QualType PromiseType, SourceLocation Loc) |
static ExprResult | buildMemberCall (Sema &S, Expr *Base, SourceLocation Loc, StringRef Name, MultiExprArg Args) |
static Expr * | maybeTailCall (Sema &S, QualType RetType, Expr *E, SourceLocation Loc) |
static ReadySuspendResumeResult | buildCoawaitCalls (Sema &S, VarDecl *CoroPromise, SourceLocation Loc, Expr *E) |
Build calls to await_ready, await_suspend, and await_resume for a co_await expression. More... | |
static ExprResult | buildPromiseCall (Sema &S, VarDecl *Promise, SourceLocation Loc, StringRef Name, MultiExprArg Args) |
static FunctionScopeInfo * | checkCoroutineContext (Sema &S, SourceLocation Loc, StringRef Keyword, bool IsImplicit=false) |
Check that this is a context in which a coroutine suspension can appear. More... | |
static Expr * | buildStdNoThrowDeclRef (Sema &S, SourceLocation Loc) |
Look up the std::nothrow object. More... | |
static FunctionDecl * | findDeleteForPromise (Sema &S, SourceLocation Loc, QualType PromiseType) |
static bool | diagReturnOnAllocFailure (Sema &S, Expr *E, CXXRecordDecl *PromiseRecordDecl, FunctionScopeInfo &Fn) |
static void | noteMemberDeclaredHere (Sema &S, Expr *E, FunctionScopeInfo &Fn) |
static Expr * | castForMoving (Sema &S, Expr *E, QualType T=QualType()) |
static VarDecl * | buildVarDecl (Sema &S, SourceLocation Loc, QualType Type, IdentifierInfo *II) |
Build a variable declaration for move parameter. More... | |
|
static |
Definition at line 316 of file SemaCoroutine.cpp.
|
static |
Build calls to await_ready, await_suspend, and await_resume for a co_await expression.
Definition at line 423 of file SemaCoroutine.cpp.
|
static |
Definition at line 336 of file SemaCoroutine.cpp.
|
static |
Definition at line 370 of file SemaCoroutine.cpp.
|
static |
Build a call to 'operator co_await' if there is a suitable operator for the given expression.
Definition at line 299 of file SemaCoroutine.cpp.
|
static |
Definition at line 307 of file SemaCoroutine.cpp.
|
static |
Definition at line 276 of file SemaCoroutine.cpp.
|
static |
Definition at line 491 of file SemaCoroutine.cpp.
|
static |
Look up the std::nothrow object.
Definition at line 865 of file SemaCoroutine.cpp.
|
static |
Build a variable declaration for move parameter.
Definition at line 1474 of file SemaCoroutine.cpp.
References clang::Sema::Context, clang::VarDecl::Create(), clang::Sema::CurContext, clang::ASTContext::getTrivialTypeSourceInfo(), clang::SC_None, and clang::Decl::setImplicit().
Referenced by clang::Sema::buildCoroutineParameterMoves().
Definition at line 1458 of file SemaCoroutine.cpp.
Referenced by clang::Sema::buildCoroutineParameterMoves().
|
static |
Check that this is a context in which a coroutine suspension can appear.
Definition at line 596 of file SemaCoroutine.cpp.
Referenced by clang::Sema::ActOnCoroutineBodyStart().
|
static |
Definition at line 1014 of file SemaCoroutine.cpp.
|
static |
Definition at line 896 of file SemaCoroutine.cpp.
|
static |
Definition at line 188 of file SemaCoroutine.cpp.
|
static |
Look up the std::experimental::coroutine_handle<PromiseType>.
Definition at line 145 of file SemaCoroutine.cpp.
|
static |
Definition at line 31 of file SemaCoroutine.cpp.
|
static |
Definition at line 42 of file SemaCoroutine.cpp.
|
static |
Look up the std::coroutine_traits<...>::promise_type for the given function type.
Definition at line 51 of file SemaCoroutine.cpp.
|
static |
Definition at line 399 of file SemaCoroutine.cpp.
|
static |
Definition at line 1367 of file SemaCoroutine.cpp.