Lines Matching defs:Actions

5360 /// Rewrite statements and expressions for Sema \p Actions CurContext.
5369 CaptureVars(Sema &Actions) : BaseTransform(Actions) {}
5375 static VarDecl *precomputeExpr(Sema &Actions,
5378 Expr *NewE = AssertSuccess(CaptureVars(Actions).TransformExpr(E));
5379 VarDecl *NewVar = buildVarDecl(Actions, {}, NewE->getType(), Name, nullptr,
5382 Actions.ActOnDeclStmt(Actions.ConvertDeclToDeclGroup(NewVar), {}, {})));
5383 Actions.AddInitializerToDecl(NewDeclStmt->getSingleDecl(), NewE, false);
5390 /// \param Actions The Sema object.
5398 static CapturedStmt *buildDistanceFunc(Sema &Actions, QualType LogicalTy,
5402 ASTContext &Ctx = Actions.getASTContext();
5412 Actions.ActOnCapturedRegionStart({}, nullptr, CR_Default, Params);
5416 Sema::CompoundScopeRAII CompoundScope(Actions);
5417 CapturedDecl *CS = cast<CapturedDecl>(Actions.CurContext);
5421 DeclRefExpr *DistRef = Actions.BuildDeclRefExpr(
5430 VarDecl *NewStart = precomputeExpr(Actions, BodyStmts, StartExpr, ".start");
5431 VarDecl *NewStop = precomputeExpr(Actions, BodyStmts, StopExpr, ".stop");
5432 VarDecl *NewStep = precomputeExpr(Actions, BodyStmts, StepExpr, ".step");
5434 return buildDeclRefExpr(Actions, VD, VD->getType(), {});
5446 Actions.BuildBinOp(nullptr, {}, BO_LT, BuildVarRef(NewStep), Zero));
5449 Expr *ForwardRange = AssertSuccess(Actions.BuildBinOp(
5452 Actions.BuildCStyleCastExpr({}, LogicalTSI, {}, ForwardRange));
5453 Expr *ForwardDist = AssertSuccess(Actions.BuildBinOp(
5457 Expr *BackwardRange = AssertSuccess(Actions.BuildBinOp(
5460 Actions.BuildCStyleCastExpr({}, LogicalTSI, {}, BackwardRange));
5462 Actions.BuildUnaryOp(nullptr, {}, UO_Minus, BuildVarRef(NewStep)));
5464 Actions.BuildBinOp(nullptr, {}, BO_Div, BackwardRange, NegIncAmount));
5467 Dist = AssertSuccess(Actions.ActOnConditionalOp(
5477 Expr *HasAnyIteration = AssertSuccess(Actions.BuildBinOp(
5483 Range = AssertSuccess(Actions.BuildBinOp(
5486 Range = AssertSuccess(Actions.BuildBinOp(
5491 AssertSuccess(Actions.BuildCStyleCastExpr({}, LogicalTSI, {}, Range));
5496 AssertSuccess(Actions.BuildBinOp(nullptr, {}, BO_Add, Range, One));
5508 AssertSuccess(Actions.BuildUnaryOp(nullptr, {}, UO_Minus, Divisor));
5510 AssertSuccess(Actions.BuildBinOp(nullptr, {}, BO_Sub, Divisor, One));
5512 Actions.BuildBinOp(nullptr, {}, BO_Add, Range, DivisorMinusOne));
5514 Actions.BuildBinOp(nullptr, {}, BO_Div, RangeRoundUp, Divisor));
5519 Actions.ActOnConditionalOp({}, {}, HasAnyIteration, Dist, Zero));
5523 Stmt *ResultAssign = AssertSuccess(Actions.BuildBinOp(
5524 Actions.getCurScope(), {}, BO_Assign, DistRef, Dist));
5527 Body = AssertSuccess(Actions.ActOnCompoundStmt({}, {}, BodyStmts, false));
5531 AssertSuccess(Actions.ActOnCapturedRegionEnd(Body)));
5537 /// \param Actions The Sema object.
5546 static CapturedStmt *buildLoopVarFunc(Sema &Actions, QualType LoopVarTy,
5550 ASTContext &Ctx = Actions.getASTContext();
5559 Actions.ActOnCapturedRegionStart({}, nullptr, CR_Default, Params);
5565 bool Invalid = Actions.tryCaptureVariable(StartVar, {},
5572 Sema::CompoundScopeRAII CompoundScope(Actions);
5573 auto *CS = cast<CapturedDecl>(Actions.CurContext);
5576 DeclRefExpr *TargetRef = Actions.BuildDeclRefExpr(
5579 DeclRefExpr *LogicalRef = Actions.BuildDeclRefExpr(
5583 CaptureVars Recap(Actions);
5588 Actions.BuildBinOp(nullptr, {}, BO_Mul, NewStep, LogicalRef));
5592 AssertSuccess(Actions.BuildBinOp(nullptr, {}, BO_Add, NewStart, Skip));
5598 AssertSuccess(Actions.BuildUnaryOp(nullptr, {}, UO_Deref, Advanced));
5602 Body = AssertSuccess(Actions.BuildBinOp(Actions.getCurScope(), {},
5606 AssertSuccess(Actions.ActOnCapturedRegionEnd(Body)));