Lines Matching refs:Coroutine
228 auto *Coroutine = checkCoroutineContext(*this, Loc, "co_await"); in BuildCoawaitExpr() local
229 if (!Coroutine) in BuildCoawaitExpr()
240 Coroutine->CoroutineStmts.push_back(Res); in BuildCoawaitExpr()
256 Coroutine->CoroutineStmts.push_back(Res); in BuildCoawaitExpr()
260 static ExprResult buildPromiseCall(Sema &S, FunctionScopeInfo *Coroutine, in buildPromiseCall() argument
263 assert(Coroutine->CoroutinePromise && "no promise for coroutine"); in buildPromiseCall()
266 auto *Promise = Coroutine->CoroutinePromise; in buildPromiseCall()
277 auto *Coroutine = checkCoroutineContext(*this, Loc, "co_yield"); in ActOnCoyieldExpr() local
278 if (!Coroutine) in ActOnCoyieldExpr()
283 buildPromiseCall(*this, Coroutine, Loc, "yield_value", E); in ActOnCoyieldExpr()
295 auto *Coroutine = checkCoroutineContext(*this, Loc, "co_yield"); in BuildCoyieldExpr() local
296 if (!Coroutine) in BuildCoyieldExpr()
307 Coroutine->CoroutineStmts.push_back(Res); in BuildCoyieldExpr()
323 Coroutine->CoroutineStmts.push_back(Res); in BuildCoyieldExpr()
331 auto *Coroutine = checkCoroutineContext(*this, Loc, "co_return"); in BuildCoreturnStmt() local
332 if (!Coroutine) in BuildCoreturnStmt()
347 PC = buildPromiseCall(*this, Coroutine, Loc, "return_value", E); in BuildCoreturnStmt()
350 PC = buildPromiseCall(*this, Coroutine, Loc, "return_void", None); in BuildCoreturnStmt()
358 Coroutine->CoroutineStmts.push_back(Res); in BuildCoreturnStmt()