reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaCoroutine.cpp
 1034       S.ActOnDeclStmt(S.ConvertDeclToDeclGroup(Fn.CoroutinePromise), Loc, Loc);
 1034       S.ActOnDeclStmt(S.ConvertDeclToDeclGroup(Fn.CoroutinePromise), Loc, Loc);
 1084       S.PP.getIdentifierInfo("get_return_object_on_allocation_failure");
 1085   LookupResult Found(S, DN, Loc, Sema::LookupMemberName);
 1086   if (!S.LookupQualifiedName(Found, PromiseRecordDecl))
 1091       S.BuildDeclarationNameExpr(SS, Found, /*NeedsADL=*/false);
 1095   if (!diagReturnOnAllocFailure(S, DeclNameExpr.get(), PromiseRecordDecl, Fn))
 1099       S.BuildCallExpr(nullptr, DeclNameExpr.get(), Loc, {}, Loc);
 1104       S.BuildReturnStmt(Loc, ReturnObjectOnAllocationFailure.get());
 1106     S.Diag(Found.getFoundDecl()->getLocation(), diag::note_member_declared_here)
 1108     S.Diag(Fn.FirstCoroutineStmtLoc, diag::note_declared_coroutine_here)
 1123   if (S.RequireCompleteType(Loc, PromiseType, diag::err_incomplete_type))
 1158       ExprResult ThisExpr = S.ActOnCXXThis(Loc);
 1161       ThisExpr = S.CreateBuiltinUnaryOp(Loc, UO_Deref, ThisExpr.get());
 1174         S.BuildDeclRefExpr(PD, PD->getOriginalType().getNonReferenceType(),
 1181   S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Class,
 1192     S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Class,
 1203     S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Global,
 1215     auto *StdNoThrow = buildStdNoThrowDeclRef(S, Loc);
 1220     S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Both,
 1232       S.Diag(OperatorNew->getLocation(),
 1235       S.Diag(Loc, diag::note_coroutine_promise_call_implicitly_required)
 1241   if ((OperatorDelete = findDeleteForPromise(S, Loc, PromiseType)) == nullptr)
 1245       buildBuiltinCall(S, Loc, Builtin::BI__builtin_coro_frame, {});
 1248       buildBuiltinCall(S, Loc, Builtin::BI__builtin_coro_size, {});
 1253       S.BuildDeclRefExpr(OperatorNew, OperatorNew->getType(), VK_LValue, Loc);
 1262       S.BuildCallExpr(S.getCurScope(), NewRef.get(), Loc, NewArgs, Loc);
 1262       S.BuildCallExpr(S.getCurScope(), NewRef.get(), Loc, NewArgs, Loc);
 1263   NewExpr = S.ActOnFinishFullExpr(NewExpr.get(), /*DiscardedValue*/ false);
 1272       S.BuildDeclRefExpr(OperatorDelete, OpDeleteQualType, VK_LValue, Loc);
 1277       buildBuiltinCall(S, Loc, Builtin::BI__builtin_coro_free, {FramePtr});
 1288       S.BuildCallExpr(S.getCurScope(), DeleteRef.get(), Loc, DeleteArgs, Loc);
 1288       S.BuildCallExpr(S.getCurScope(), DeleteRef.get(), Loc, DeleteArgs, Loc);
 1290       S.ActOnFinishFullExpr(DeleteExpr.get(), /*DiscardedValue*/ false);
 1309       lookupMember(S, "return_void", PromiseRecordDecl, Loc, HasRVoid);
 1311       lookupMember(S, "return_value", PromiseRecordDecl, Loc, HasRValue);
 1316     S.Diag(FD.getLocation(),
 1319     S.Diag(LRVoid.getRepresentativeDecl()->getLocation(),
 1322     S.Diag(LRValue.getRepresentativeDecl()->getLocation(),
 1329     S.Diag(FD.getLocation(),
 1332     S.Diag(PromiseRecordDecl->getLocation(), diag::note_defined_here)
 1339     Fallthrough = S.BuildCoreturnStmt(FD.getLocation(), nullptr,
 1341     Fallthrough = S.ActOnFinishFullStmt(Fallthrough.get());
 1355   const bool RequireUnhandledException = S.getLangOpts().CXXExceptions;
 1357   if (!lookupMember(S, "unhandled_exception", PromiseRecordDecl, Loc)) {
 1363     S.Diag(Loc, DiagID) << PromiseRecordDecl;
 1364     S.Diag(PromiseRecordDecl->getLocation(), diag::note_defined_here)
 1370   if (!S.getLangOpts().CXXExceptions)
 1373   ExprResult UnhandledException = buildPromiseCall(S, Fn.CoroutinePromise, Loc,
 1375   UnhandledException = S.ActOnFinishFullExpr(UnhandledException.get(), Loc,
 1382   if (!S.getLangOpts().Borland && Fn.FirstSEHTryLoc.isValid()) {
 1383     S.Diag(Fn.FirstSEHTryLoc, diag::err_seh_in_a_coroutine_with_cxx_exceptions);
 1384     S.Diag(Fn.FirstCoroutineStmtLoc, diag::note_declared_coroutine_here)
 1397       buildPromiseCall(S, Fn.CoroutinePromise, Loc, "get_return_object", None);
 1430         S.ActOnFinishFullExpr(this->ReturnValue, Loc, /*DiscardedValue*/ false);
 1442     S.PerformMoveOrCopyInitialization(Entity, nullptr, FnRetType, ReturnValue);
 1443     noteMemberDeclaredHere(S, ReturnValue, Fn);
 1448       S.Context, &FD, FD.getLocation(), FD.getLocation(),
 1449       &S.PP.getIdentifierTable().get("__coro_gro"), GroType,
 1450       S.Context.getTrivialTypeSourceInfo(GroType, Loc), SC_None);
 1452   S.CheckVariableDeclarationType(GroDecl);
 1457   ExprResult Res = S.PerformMoveOrCopyInitialization(Entity, nullptr, GroType,
 1462   Res = S.ActOnFinishFullExpr(Res.get(), /*DiscardedValue*/ false);
 1466   S.AddInitializerToDecl(GroDecl, Res.get(),
 1469   S.FinalizeDeclaration(GroDecl);
 1474       S.ActOnDeclStmt(S.ConvertDeclToDeclGroup(GroDecl), Loc, Loc);
 1474       S.ActOnDeclStmt(S.ConvertDeclToDeclGroup(GroDecl), Loc, Loc);
 1480   ExprResult declRef = S.BuildDeclRefExpr(GroDecl, GroType, VK_LValue, Loc);
 1484   StmtResult ReturnStmt = S.BuildReturnStmt(Loc, declRef.get());
 1486     noteMemberDeclaredHere(S, ReturnValue, Fn);