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

References

tools/clang/lib/Sema/SemaOpenMP.cpp
13060   ASTContext &Context = S.Context;
13163     auto Res = getPrivateItem(S, SimpleRefExpr, ELoc, ERange,
13171           S, ELoc, ERange, Stack->getCurScope(), ReductionIdScopeSpec,
13174       if (S.CurContext->isDependentContext() &&
13207     if (S.RequireCompleteType(ELoc, D->getType(),
13213     if (rejectConstNotMutableType(S, D, Type, ClauseKind, ELoc,
13227             S.Diag(ELoc, diag::err_omp_reduction_ref_type_arg)
13229             S.Diag(VDDef->getLocation(), diag::note_defined_here) << VDDef;
13248         S.Diag(ELoc, diag::err_omp_once_referenced)
13251           S.Diag(DVar.RefExpr->getExprLoc(), diag::note_omp_referenced);
13255         S.Diag(ELoc, diag::err_omp_wrong_dsa)
13258         reportOriginalDsa(S, Stack, D, DVar);
13271           S.Diag(ELoc, diag::err_omp_required_access)
13274           reportOriginalDsa(S, Stack, D, DVar);
13284         S, ELoc, ERange, Stack->getCurScope(), ReductionIdScopeSpec,
13288     if (S.CurContext->isDependentContext() &&
13296       S.Diag(ReductionId.getBeginLoc(),
13313             (S.getLangOpts().CPlusPlus && Type->isArithmeticType()))) {
13314         S.Diag(ELoc, diag::err_omp_clause_not_arithmetic_type_arg)
13315             << getOpenMPClauseName(ClauseKind) << S.getLangOpts().CPlusPlus;
13319           S.Diag(D->getLocation(),
13326           !S.getLangOpts().CPlusPlus && Type->isFloatingType()) {
13327         S.Diag(ELoc, diag::err_omp_clause_floating_type_arg)
13332           S.Diag(D->getLocation(),
13341     VarDecl *LHSVD = buildVarDecl(S, ELoc, Type, ".reduction.lhs",
13343     VarDecl *RHSVD = buildVarDecl(S, ELoc, Type, D->getName(),
13370           S.Diag(ELoc, diag::err_omp_reduction_vla_unsupported) << !!OASE;
13371           S.Diag(ELoc, diag::note_vla_unsupported);
13373           S.targetDiag(ELoc, diag::err_omp_reduction_vla_unsupported) << !!OASE;
13374           S.targetDiag(ELoc, diag::note_vla_unsupported);
13393         buildVarDecl(S, ELoc, PrivateTy, D->getName(),
13398     DeclRefExpr *LHSDRE = buildDeclRefExpr(S, LHSVD, Type, ELoc);
13399     DeclRefExpr *RHSDRE = buildDeclRefExpr(S, RHSVD, Type, ELoc);
13416           Init = S.ActOnIntegerConstant(ELoc, /*Val=*/0).get();
13422           Init = S.ActOnIntegerConstant(ELoc, /*Val=*/1).get();
13445           Init = S.CreateBuiltinBinOp(ELoc, BO_Add, Init, Im).get();
13469             ExprResult CastExpr = S.BuildCStyleCastExpr(
13511       S.AddInitializerToDecl(RHSVD, Init, /*DirectInit=*/false);
13513       S.ActOnUninitializedDecl(RHSVD);
13517         (DeclareReductionRef.isUnset() || !S.LangOpts.CPlusPlus)) {
13518       S.Diag(ELoc, diag::err_omp_reduction_id_not_compatible)
13522       S.Diag(D->getLocation(),
13531     DeclRefExpr *PrivateDRE = buildDeclRefExpr(S, PrivateVD, PrivateTy, ELoc);
13536       ExprResult LHS = S.CreateBuiltinUnaryOp(ELoc, UO_AddrOf, LHSDRE);
13537       ExprResult RHS = S.CreateBuiltinUnaryOp(ELoc, UO_AddrOf, RHSDRE);
13539         LHS = S.DefaultLvalueConversion(LHS.get());
13540         RHS = S.DefaultLvalueConversion(RHS.get());
13553           S.DefaultLvalueConversion(DeclareReductionRef.get()).get());
13558       ReductionOp = S.BuildBinOp(
13563               S.BuildBinOp(Stack->getCurScope(), ReductionId.getBeginLoc(),
13570               S.BuildBinOp(Stack->getCurScope(), ReductionId.getBeginLoc(),
13574           ReductionOp = S.ActOnFinishFullExpr(ReductionOp.get(),
13602         S.Diag(ELoc, diag::err_omp_in_reduction_not_task_reduction);
13617           S.Diag(ReductionId.getBeginLoc(),
13620           S.Diag(ParentSR.getBegin(),
13635     if (!VD && !S.CurContext->isDependentContext()) {
13637         TransformExprToCaptures RebuildToCapture(S, D);
13642         VarsExpr = Ref = buildCapture(S, D, SimpleRefExpr, /*WithInit=*/false);
13644       if (!S.isOpenMPCapturedDecl(D)) {
13647           ExprResult RefRes = S.DefaultLvalueConversion(Ref);
13651               S.BuildBinOp(Stack->getCurScope(), ELoc, BO_Assign, SimpleRefExpr,
13657             S.Diag(RefExpr->getExprLoc(),
13663               S.IgnoredValueConversions(PostUpdateRes.get()).get());