[clang] 6f33936 - Explain why the array bound is non-constant in VLA diagnostics.
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 19 15:46:04 PDT 2020
Author: Richard Smith
Date: 2020-08-19T15:45:51-07:00
New Revision: 6f339367195e7464df87571062529bbe20157bdf
URL: https://github.com/llvm/llvm-project/commit/6f339367195e7464df87571062529bbe20157bdf
DIFF: https://github.com/llvm/llvm-project/commit/6f339367195e7464df87571062529bbe20157bdf.diff
LOG: Explain why the array bound is non-constant in VLA diagnostics.
In passing, also use a more precise diagnostic to explain why an
expression is not an ICE if it's not of integral type.
Added:
clang/test/SemaCXX/vla-construct.cpp
Modified:
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Sema/Sema.h
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaExpr.cpp
clang/lib/Sema/SemaTemplate.cpp
clang/lib/Sema/SemaType.cpp
clang/test/CXX/drs/dr0xx.cpp
clang/test/CXX/drs/dr3xx.cpp
clang/test/CXX/drs/dr4xx.cpp
clang/test/CXX/expr/expr.const/p2-0x.cpp
clang/test/CXX/expr/expr.const/p5-0x.cpp
clang/test/OpenMP/atomic_messages.c
clang/test/OpenMP/critical_messages.cpp
clang/test/OpenMP/declare_simd_messages.cpp
clang/test/OpenMP/distribute_collapse_messages.cpp
clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp
clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp
clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp
clang/test/OpenMP/distribute_parallel_for_simd_misc_messages.c
clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp
clang/test/OpenMP/distribute_simd_aligned_messages.cpp
clang/test/OpenMP/distribute_simd_collapse_messages.cpp
clang/test/OpenMP/distribute_simd_misc_messages.c
clang/test/OpenMP/distribute_simd_safelen_messages.cpp
clang/test/OpenMP/distribute_simd_simdlen_messages.cpp
clang/test/OpenMP/for_collapse_messages.cpp
clang/test/OpenMP/for_misc_messages.c
clang/test/OpenMP/for_ordered_clause.cpp
clang/test/OpenMP/for_simd_aligned_messages.cpp
clang/test/OpenMP/for_simd_collapse_messages.cpp
clang/test/OpenMP/for_simd_misc_messages.c
clang/test/OpenMP/for_simd_safelen_messages.cpp
clang/test/OpenMP/for_simd_simdlen_messages.cpp
clang/test/OpenMP/master_taskloop_collapse_messages.cpp
clang/test/OpenMP/master_taskloop_misc_messages.c
clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp
clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp
clang/test/OpenMP/master_taskloop_simd_misc_messages.c
clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp
clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp
clang/test/OpenMP/ordered_messages.cpp
clang/test/OpenMP/parallel_for_collapse_messages.cpp
clang/test/OpenMP/parallel_for_misc_messages.c
clang/test/OpenMP/parallel_for_ordered_messages.cpp
clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp
clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp
clang/test/OpenMP/parallel_for_simd_misc_messages.c
clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp
clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp
clang/test/OpenMP/parallel_master_taskloop_misc_messages.c
clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp
clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp
clang/test/OpenMP/parallel_master_taskloop_simd_misc_messages.c
clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp
clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp
clang/test/OpenMP/simd_aligned_messages.cpp
clang/test/OpenMP/simd_collapse_messages.cpp
clang/test/OpenMP/simd_misc_messages.c
clang/test/OpenMP/simd_safelen_messages.cpp
clang/test/OpenMP/simd_simdlen_messages.cpp
clang/test/OpenMP/target_parallel_for_collapse_messages.cpp
clang/test/OpenMP/target_parallel_for_misc_messages.c
clang/test/OpenMP/target_parallel_for_ordered_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_misc_messages.c
clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp
clang/test/OpenMP/target_simd_aligned_messages.cpp
clang/test/OpenMP/target_simd_collapse_messages.cpp
clang/test/OpenMP/target_simd_misc_messages.c
clang/test/OpenMP/target_simd_safelen_messages.cpp
clang/test/OpenMP/target_simd_simdlen_messages.cpp
clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp
clang/test/OpenMP/target_teams_distribute_misc_messages.c
clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_misc_messages.c
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_misc_messages.c
clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
clang/test/OpenMP/taskloop_collapse_messages.cpp
clang/test/OpenMP/taskloop_misc_messages.c
clang/test/OpenMP/taskloop_simd_aligned_messages.cpp
clang/test/OpenMP/taskloop_simd_collapse_messages.cpp
clang/test/OpenMP/taskloop_simd_misc_messages.c
clang/test/OpenMP/taskloop_simd_safelen_messages.cpp
clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp
clang/test/OpenMP/teams_distribute_collapse_messages.cpp
clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp
clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp
clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp
clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp
clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp
clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
clang/test/PCH/cxx-constexpr.cpp
clang/test/Sema/bitfield.c
clang/test/Sema/c89.c
clang/test/Sema/complex-int.c
clang/test/Sema/warn-vla.c
clang/test/SemaCXX/c99-variable-length-array-cxx11.cpp
clang/test/SemaCXX/c99-variable-length-array.cpp
clang/test/SemaCXX/constant-expression-cxx11.cpp
clang/test/SemaCXX/constant-expression.cpp
clang/test/SemaCXX/warn-vla.cpp
clang/test/SemaObjC/class-bitfield.m
clang/test/SemaTemplate/instantiate-self.cpp
Removed:
clang/test/SemaCXX/vla-consruct.cpp
################################################################################
diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td
index 2b13f9eca12d..10a5c90c960e 100644
--- a/clang/include/clang/Basic/DiagnosticGroups.td
+++ b/clang/include/clang/Basic/DiagnosticGroups.td
@@ -733,8 +733,8 @@ def OverridingMethodMismatch : DiagGroup<"overriding-method-mismatch">;
def VariadicMacros : DiagGroup<"variadic-macros">;
def VectorConversion : DiagGroup<"vector-conversion">; // clang specific
def VexingParse : DiagGroup<"vexing-parse">;
-def VLA : DiagGroup<"vla">;
def VLAExtension : DiagGroup<"vla-extension">;
+def VLA : DiagGroup<"vla", [VLAExtension]>;
def VolatileRegisterVar : DiagGroup<"volatile-register-var">;
def Visibility : DiagGroup<"visibility">;
def ZeroLengthArray : DiagGroup<"zero-length-array">;
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index a63fae5b5f72..25e6e317304f 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -91,8 +91,8 @@ def ext_cce_narrowing : ExtWarn<
"evaluates to %2, which cannot be narrowed to type %3}1">,
InGroup<CXX11Narrowing>, DefaultError, SFINAEFailure;
def err_ice_not_integral : Error<
- "integral constant expression must have integral or unscoped enumeration "
- "type, not %0">;
+ "%select{integer|integral}1 constant expression must have "
+ "%select{integer|integral or unscoped enumeration}1 type, not %0">;
def err_ice_incomplete_type : Error<
"integral constant expression has incomplete class type %0">;
def err_ice_explicit_conversion : Error<
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 19d58b889ef7..fb9f442bc5bc 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -11588,9 +11588,12 @@ class Sema final {
VerifyICEDiagnoser(bool Suppress = false) : Suppress(Suppress) { }
- virtual void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) =0;
- virtual void diagnoseFold(Sema &S, SourceLocation Loc, SourceRange SR);
- virtual ~VerifyICEDiagnoser() { }
+ virtual SemaDiagnosticBuilder
+ diagnoseNotICEType(Sema &S, SourceLocation Loc, QualType T);
+ virtual SemaDiagnosticBuilder diagnoseNotICE(Sema &S,
+ SourceLocation Loc) = 0;
+ virtual SemaDiagnosticBuilder diagnoseFold(Sema &S, SourceLocation Loc);
+ virtual ~VerifyICEDiagnoser() {}
};
/// VerifyIntegerConstantExpression - Verifies that an expression is an ICE,
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index ea3f6786d151..0a4f75ad341b 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -1066,8 +1066,9 @@ static IsTupleLike isTupleLike(Sema &S, SourceLocation Loc, QualType T,
TemplateArgumentListInfo &Args;
ICEDiagnoser(LookupResult &R, TemplateArgumentListInfo &Args)
: R(R), Args(Args) {}
- void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
- S.Diag(Loc, diag::err_decomp_decl_std_tuple_size_not_constant)
+ Sema::SemaDiagnosticBuilder diagnoseNotICE(Sema &S,
+ SourceLocation Loc) override {
+ return S.Diag(Loc, diag::err_decomp_decl_std_tuple_size_not_constant)
<< printTemplateArgs(S.Context.getPrintingPolicy(), Args);
}
} Diagnoser(R, Args);
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 5e9fca13f1d0..39ed25f3ef96 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -15821,8 +15821,13 @@ ExprResult Sema::VerifyIntegerConstantExpression(Expr *E,
llvm::APSInt *Result) {
class SimpleICEDiagnoser : public VerifyICEDiagnoser {
public:
- void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
- S.Diag(Loc, diag::err_expr_not_ice) << S.LangOpts.CPlusPlus << SR;
+ SemaDiagnosticBuilder diagnoseNotICEType(Sema &S, SourceLocation Loc,
+ QualType T) override {
+ return S.Diag(Loc, diag::err_ice_not_integral)
+ << T << S.LangOpts.CPlusPlus;
+ }
+ SemaDiagnosticBuilder diagnoseNotICE(Sema &S, SourceLocation Loc) override {
+ return S.Diag(Loc, diag::err_expr_not_ice) << S.LangOpts.CPlusPlus;
}
} Diagnoser;
@@ -15840,17 +15845,23 @@ ExprResult Sema::VerifyIntegerConstantExpression(Expr *E,
IDDiagnoser(unsigned DiagID)
: VerifyICEDiagnoser(DiagID == 0), DiagID(DiagID) { }
- void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
- S.Diag(Loc, DiagID) << SR;
+ SemaDiagnosticBuilder diagnoseNotICE(Sema &S, SourceLocation Loc) override {
+ return S.Diag(Loc, DiagID);
}
} Diagnoser(DiagID);
return VerifyIntegerConstantExpression(E, Result, Diagnoser, AllowFold);
}
-void Sema::VerifyICEDiagnoser::diagnoseFold(Sema &S, SourceLocation Loc,
- SourceRange SR) {
- S.Diag(Loc, diag::ext_expr_not_ice) << SR << S.LangOpts.CPlusPlus;
+Sema::SemaDiagnosticBuilder
+Sema::VerifyICEDiagnoser::diagnoseNotICEType(Sema &S, SourceLocation Loc,
+ QualType T) {
+ return diagnoseNotICE(S, Loc);
+}
+
+Sema::SemaDiagnosticBuilder
+Sema::VerifyICEDiagnoser::diagnoseFold(Sema &S, SourceLocation Loc) {
+ return S.Diag(Loc, diag::ext_expr_not_ice) << S.LangOpts.CPlusPlus;
}
ExprResult
@@ -15867,14 +15878,16 @@ Sema::VerifyIntegerConstantExpression(Expr *E, llvm::APSInt *Result,
// unscoped enumeration type
ExprResult Converted;
class CXX11ConvertDiagnoser : public ICEConvertDiagnoser {
+ VerifyICEDiagnoser &BaseDiagnoser;
public:
- CXX11ConvertDiagnoser(bool Silent)
- : ICEConvertDiagnoser(/*AllowScopedEnumerations*/false,
- Silent, true) {}
+ CXX11ConvertDiagnoser(VerifyICEDiagnoser &BaseDiagnoser)
+ : ICEConvertDiagnoser(/*AllowScopedEnumerations*/ false,
+ BaseDiagnoser.Suppress, true),
+ BaseDiagnoser(BaseDiagnoser) {}
SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc,
QualType T) override {
- return S.Diag(Loc, diag::err_ice_not_integral) << T;
+ return BaseDiagnoser.diagnoseNotICEType(S, Loc, T);
}
SemaDiagnosticBuilder diagnoseIncomplete(
@@ -15908,7 +15921,7 @@ Sema::VerifyIntegerConstantExpression(Expr *E, llvm::APSInt *Result,
Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override {
llvm_unreachable("conversion functions are permitted");
}
- } ConvertDiagnoser(Diagnoser.Suppress);
+ } ConvertDiagnoser(Diagnoser);
Converted = PerformContextualImplicitConversion(DiagLoc, E,
ConvertDiagnoser);
@@ -15920,7 +15933,8 @@ Sema::VerifyIntegerConstantExpression(Expr *E, llvm::APSInt *Result,
} else if (!E->getType()->isIntegralOrUnscopedEnumerationType()) {
// An ICE must be of integral or unscoped enumeration type.
if (!Diagnoser.Suppress)
- Diagnoser.diagnoseNotICE(*this, DiagLoc, E->getSourceRange());
+ Diagnoser.diagnoseNotICEType(*this, DiagLoc, E->getType())
+ << E->getSourceRange();
return ExprError();
}
@@ -15973,7 +15987,7 @@ Sema::VerifyIntegerConstantExpression(Expr *E, llvm::APSInt *Result,
if (!Folded || !AllowFold) {
if (!Diagnoser.Suppress) {
- Diagnoser.diagnoseNotICE(*this, DiagLoc, E->getSourceRange());
+ Diagnoser.diagnoseNotICE(*this, DiagLoc) << E->getSourceRange();
for (const PartialDiagnosticAt &Note : Notes)
Diag(Note.first, Note.second);
}
@@ -15981,7 +15995,7 @@ Sema::VerifyIntegerConstantExpression(Expr *E, llvm::APSInt *Result,
return ExprError();
}
- Diagnoser.diagnoseFold(*this, DiagLoc, E->getSourceRange());
+ Diagnoser.diagnoseFold(*this, DiagLoc) << E->getSourceRange();
for (const PartialDiagnosticAt &Note : Notes)
Diag(Note.first, Note.second);
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 53954ca6ec41..6721b0725329 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -6983,9 +6983,9 @@ ExprResult Sema::CheckTemplateArgument(NonTypeTemplateParmDecl *Param,
public:
TmplArgICEDiagnoser(QualType T) : T(T) { }
- void diagnoseNotICE(Sema &S, SourceLocation Loc,
- SourceRange SR) override {
- S.Diag(Loc, diag::err_template_arg_not_ice) << T << SR;
+ SemaDiagnosticBuilder diagnoseNotICE(Sema &S,
+ SourceLocation Loc) override {
+ return S.Diag(Loc, diag::err_template_arg_not_ice) << T;
}
} Diagnoser(ArgType);
diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp
index 4ab5cc5fd8b9..fb62250564b5 100644
--- a/clang/lib/Sema/SemaType.cpp
+++ b/clang/lib/Sema/SemaType.cpp
@@ -2221,26 +2221,48 @@ QualType Sema::BuildExtIntType(bool IsUnsigned, Expr *BitWidth,
return Context.getExtIntType(IsUnsigned, NumBits);
}
-/// Check whether the specified array size makes the array type a VLA. If so,
-/// return true, if not, return the size of the array in SizeVal.
-static bool isArraySizeVLA(Sema &S, Expr *ArraySize, llvm::APSInt &SizeVal) {
+/// Check whether the specified array bound can be evaluated using the relevant
+/// language rules. If so, returns the possibly-converted expression and sets
+/// SizeVal to the size. If not, but the expression might be a VLA bound,
+/// returns ExprResult(). Otherwise, produces a diagnostic and returns
+/// ExprError().
+static ExprResult checkArraySize(Sema &S, Expr *&ArraySize,
+ llvm::APSInt &SizeVal, unsigned VLADiag,
+ bool VLAIsError) {
// If the size is an ICE, it certainly isn't a VLA. If we're in a GNU mode
// (like gnu99, but not c99) accept any evaluatable value as an extension.
class VLADiagnoser : public Sema::VerifyICEDiagnoser {
public:
- VLADiagnoser() : Sema::VerifyICEDiagnoser(true) {}
+ unsigned VLADiag;
+ bool VLAIsError;
+ bool IsVLA = false;
- void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
+ VLADiagnoser(unsigned VLADiag, bool VLAIsError)
+ : VLADiag(VLADiag), VLAIsError(VLAIsError) {}
+
+ Sema::SemaDiagnosticBuilder diagnoseNotICEType(Sema &S, SourceLocation Loc,
+ QualType T) override {
+ return S.Diag(Loc, diag::err_array_size_non_int) << T;
+ }
+
+ Sema::SemaDiagnosticBuilder diagnoseNotICE(Sema &S,
+ SourceLocation Loc) override {
+ IsVLA = !VLAIsError;
+ return S.Diag(Loc, VLADiag);
}
- void diagnoseFold(Sema &S, SourceLocation Loc, SourceRange SR) override {
- S.Diag(Loc, diag::ext_vla_folded_to_constant) << SR;
+ Sema::SemaDiagnosticBuilder diagnoseFold(Sema &S,
+ SourceLocation Loc) override {
+ return S.Diag(Loc, diag::ext_vla_folded_to_constant);
}
- } Diagnoser;
+ } Diagnoser(VLADiag, VLAIsError);
- return S.VerifyIntegerConstantExpression(ArraySize, &SizeVal, Diagnoser,
- S.LangOpts.GNUMode ||
- S.LangOpts.OpenCL).isInvalid();
+ ExprResult R = S.VerifyIntegerConstantExpression(
+ ArraySize, &SizeVal, Diagnoser,
+ (S.LangOpts.GNUMode || S.LangOpts.OpenCL));
+ if (Diagnoser.IsVLA)
+ return ExprResult();
+ return R;
}
/// Build an array type.
@@ -2352,68 +2374,95 @@ QualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM,
return QualType();
}
+ // VLAs always produce at least a -Wvla diagnostic, sometimes an error.
+ unsigned VLADiag;
+ bool VLAIsError;
+ if (getLangOpts().OpenCL) {
+ // OpenCL v1.2 s6.9.d: variable length arrays are not supported.
+ VLADiag = diag::err_opencl_vla;
+ VLAIsError = true;
+ } else if (getLangOpts().C99) {
+ VLADiag = diag::warn_vla_used;
+ VLAIsError = false;
+ } else if (isSFINAEContext()) {
+ VLADiag = diag::err_vla_in_sfinae;
+ VLAIsError = true;
+ } else {
+ VLADiag = diag::ext_vla;
+ VLAIsError = false;
+ }
+
llvm::APSInt ConstVal(Context.getTypeSize(Context.getSizeType()));
if (!ArraySize) {
- if (ASM == ArrayType::Star)
+ if (ASM == ArrayType::Star) {
+ Diag(Loc, VLADiag);
+ if (VLAIsError)
+ return QualType();
+
T = Context.getVariableArrayType(T, nullptr, ASM, Quals, Brackets);
- else
+ } else {
T = Context.getIncompleteArrayType(T, ASM, Quals);
+ }
} else if (ArraySize->isTypeDependent() || ArraySize->isValueDependent()) {
T = Context.getDependentSizedArrayType(T, ArraySize, ASM, Quals, Brackets);
- } else if ((!T->isDependentType() && !T->isIncompleteType() &&
- !T->isConstantSizeType()) ||
- isArraySizeVLA(*this, ArraySize, ConstVal)) {
- // Even in C++11, don't allow contextual conversions in the array bound
- // of a VLA.
- if (getLangOpts().CPlusPlus11 &&
- !ArraySize->getType()->isIntegralOrUnscopedEnumerationType()) {
- Diag(ArraySize->getBeginLoc(), diag::err_array_size_non_int)
- << ArraySize->getType() << ArraySize->getSourceRange();
+ } else {
+ ExprResult R =
+ checkArraySize(*this, ArraySize, ConstVal, VLADiag, VLAIsError);
+ if (R.isInvalid())
return QualType();
- }
- // C99: an array with an element type that has a non-constant-size is a VLA.
- // C99: an array with a non-ICE size is a VLA. We accept any expression
- // that we can fold to a non-zero positive value as an extension.
- T = Context.getVariableArrayType(T, ArraySize, ASM, Quals, Brackets);
- } else {
- // C99 6.7.5.2p1: If the expression is a constant expression, it shall
- // have a value greater than zero.
- if (ConstVal.isSigned() && ConstVal.isNegative()) {
- if (Entity)
- Diag(ArraySize->getBeginLoc(), diag::err_decl_negative_array_size)
- << getPrintableNameForEntity(Entity) << ArraySize->getSourceRange();
- else
- Diag(ArraySize->getBeginLoc(), diag::err_typecheck_negative_array_size)
+ if (!R.isUsable()) {
+ // C99: an array with a non-ICE size is a VLA. We accept any expression
+ // that we can fold to a non-zero positive value as a non-VLA as an
+ // extension.
+ T = Context.getVariableArrayType(T, ArraySize, ASM, Quals, Brackets);
+ } else if (!T->isDependentType() && !T->isIncompleteType() &&
+ !T->isConstantSizeType()) {
+ // C99: an array with an element type that has a non-constant-size is a
+ // VLA.
+ // FIXME: Add a note to explain why this isn't a VLA.
+ Diag(Loc, VLADiag);
+ if (VLAIsError)
+ return QualType();
+ T = Context.getVariableArrayType(T, ArraySize, ASM, Quals, Brackets);
+ } else {
+ // C99 6.7.5.2p1: If the expression is a constant expression, it shall
+ // have a value greater than zero.
+ // In C++, this follows from narrowing conversions being disallowed.
+ if (ConstVal.isSigned() && ConstVal.isNegative()) {
+ if (Entity)
+ Diag(ArraySize->getBeginLoc(), diag::err_decl_negative_array_size)
+ << getPrintableNameForEntity(Entity)
+ << ArraySize->getSourceRange();
+ else
+ Diag(ArraySize->getBeginLoc(),
+ diag::err_typecheck_negative_array_size)
+ << ArraySize->getSourceRange();
+ return QualType();
+ }
+ if (ConstVal == 0) {
+ // GCC accepts zero sized static arrays. We allow them when
+ // we're not in a SFINAE context.
+ Diag(ArraySize->getBeginLoc(),
+ isSFINAEContext() ? diag::err_typecheck_zero_array_size
+ : diag::ext_typecheck_zero_array_size)
<< ArraySize->getSourceRange();
- return QualType();
- }
- if (ConstVal == 0) {
- // GCC accepts zero sized static arrays. We allow them when
- // we're not in a SFINAE context.
- Diag(ArraySize->getBeginLoc(), isSFINAEContext()
- ? diag::err_typecheck_zero_array_size
- : diag::ext_typecheck_zero_array_size)
- << ArraySize->getSourceRange();
- } else if (!T->isDependentType() && !T->isVariablyModifiedType() &&
- !T->isIncompleteType() && !T->isUndeducedType()) {
+ }
+
// Is the array too large?
- unsigned ActiveSizeBits
- = ConstantArrayType::getNumAddressingBits(Context, T, ConstVal);
+ unsigned ActiveSizeBits =
+ (!T->isDependentType() && !T->isVariablyModifiedType() &&
+ !T->isIncompleteType() && !T->isUndeducedType())
+ ? ConstantArrayType::getNumAddressingBits(Context, T, ConstVal)
+ : ConstVal.getActiveBits();
if (ActiveSizeBits > ConstantArrayType::getMaxSizeBits(Context)) {
Diag(ArraySize->getBeginLoc(), diag::err_array_too_large)
<< ConstVal.toString(10) << ArraySize->getSourceRange();
return QualType();
}
- }
- T = Context.getConstantArrayType(T, ConstVal, ArraySize, ASM, Quals);
- }
-
- // OpenCL v1.2 s6.9.d: variable length arrays are not supported.
- if (getLangOpts().OpenCL && T->isVariableArrayType()) {
- Diag(Loc, diag::err_opencl_vla);
- return QualType();
+ T = Context.getConstantArrayType(T, ConstVal, ArraySize, ASM, Quals);
+ }
}
if (T->isVariableArrayType() && !Context.getTargetInfo().isVLASupported()) {
@@ -2426,26 +2475,12 @@ QualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM,
: CFT_InvalidTarget);
}
- // If this is not C99, extwarn about VLA's and C99 array size modifiers.
- if (!getLangOpts().C99) {
- if (T->isVariableArrayType()) {
- // Prohibit the use of VLAs during template argument deduction.
- if (isSFINAEContext()) {
- Diag(Loc, diag::err_vla_in_sfinae);
- return QualType();
- }
- // Just extwarn about VLAs.
- else
- Diag(Loc, diag::ext_vla);
- } else if (ASM != ArrayType::Normal || Quals != 0)
- Diag(Loc,
- getLangOpts().CPlusPlus? diag::err_c99_array_usage_cxx
- : diag::ext_c99_array_usage) << ASM;
- }
-
- if (T->isVariableArrayType()) {
- // Warn about VLAs for -Wvla.
- Diag(Loc, diag::warn_vla_used);
+ // If this is not C99, diagnose array size modifiers on non-VLAs.
+ if (!getLangOpts().C99 && !T->isVariableArrayType() &&
+ (ASM != ArrayType::Normal || Quals != 0)) {
+ Diag(Loc, getLangOpts().CPlusPlus ? diag::err_c99_array_usage_cxx
+ : diag::ext_c99_array_usage)
+ << ASM;
}
// OpenCL v2.0 s6.12.5 - Arrays of blocks are not supported.
diff --git a/clang/test/CXX/drs/dr0xx.cpp b/clang/test/CXX/drs/dr0xx.cpp
index d998114442be..8799215ef3b5 100644
--- a/clang/test/CXX/drs/dr0xx.cpp
+++ b/clang/test/CXX/drs/dr0xx.cpp
@@ -915,7 +915,7 @@ namespace dr75 { // dr75: yes
namespace dr76 { // dr76: yes
const volatile int n = 1;
- int arr[n]; // expected-error +{{variable length array}}
+ int arr[n]; // expected-error +{{variable length array}} expected-note {{read of volatile}}
}
namespace dr77 { // dr77: yes
diff --git a/clang/test/CXX/drs/dr3xx.cpp b/clang/test/CXX/drs/dr3xx.cpp
index efeed66306c0..f297d5e930d0 100644
--- a/clang/test/CXX/drs/dr3xx.cpp
+++ b/clang/test/CXX/drs/dr3xx.cpp
@@ -895,7 +895,7 @@ namespace dr367 { // dr367: yes
// array as being a VLA!
int a[true ? throw 0 : 4]; // expected-error 2{{variable length array}}
int b[true ? 4 : throw 0];
- int c[true ? *new int : 4]; // expected-error 2{{variable length array}}
+ int c[true ? *new int : 4]; // expected-error 2{{variable length array}} expected-note {{read of uninitialized}}
int d[true ? 4 : *new int];
#if __cplusplus < 201103L
// expected-error at -4 {{variable length array}} expected-error at -4 {{constant expression}}
diff --git a/clang/test/CXX/drs/dr4xx.cpp b/clang/test/CXX/drs/dr4xx.cpp
index ff90ee82d4d4..7d06da552d1b 100644
--- a/clang/test/CXX/drs/dr4xx.cpp
+++ b/clang/test/CXX/drs/dr4xx.cpp
@@ -644,8 +644,8 @@ namespace dr450 { // dr450: yes
namespace dr451 { // dr451: yes
const int a = 1 / 0; // expected-warning {{undefined}}
- const int b = 1 / 0; // expected-warning {{undefined}}
- int arr[b]; // expected-error +{{variable length arr}}
+ const int b = 1 / 0; // expected-warning {{undefined}} expected-note {{here}} expected-note 0-1{{division by zero}}
+ int arr[b]; // expected-error +{{variable length arr}} expected-note {{initializer of 'b' is not a constant}}
}
namespace dr452 { // dr452: yes
@@ -682,7 +682,7 @@ namespace dr457 { // dr457: yes
const int a = 1;
const volatile int b = 1;
int ax[a];
- int bx[b]; // expected-error +{{variable length array}}
+ int bx[b]; // expected-error +{{variable length array}} expected-note {{read of volatile}}
enum E {
ea = a,
@@ -1088,8 +1088,8 @@ namespace dr486 { // dr486: yes
namespace dr487 { // dr487: yes
enum E { e };
- int operator+(int, E);
- int i[4 + e]; // expected-error 2{{variable length array}}
+ int operator+(int, E); // expected-note 0-1{{here}}
+ int i[4 + e]; // expected-error 2{{variable length array}} expected-note 0-1{{non-constexpr}}
}
namespace dr488 { // dr488: yes c++11
diff --git a/clang/test/CXX/expr/expr.const/p2-0x.cpp b/clang/test/CXX/expr/expr.const/p2-0x.cpp
index b9235eeeb172..2ab629a6d0dd 100644
--- a/clang/test/CXX/expr/expr.const/p2-0x.cpp
+++ b/clang/test/CXX/expr/expr.const/p2-0x.cpp
@@ -12,8 +12,8 @@ struct This {
int this1 : this1; // expected-error {{undeclared}}
int this2 : this->this1; // expected-error {{invalid}}
void this3() {
- int n1[this->this1]; // expected-warning {{variable length array}}
- int n2[this1]; // expected-warning {{variable length array}}
+ int n1[this->this1]; // expected-warning {{variable length array}} expected-note {{'this'}}
+ int n2[this1]; // expected-warning {{variable length array}} expected-note {{'this'}}
(void)n1, (void)n2;
}
};
diff --git a/clang/test/CXX/expr/expr.const/p5-0x.cpp b/clang/test/CXX/expr/expr.const/p5-0x.cpp
index 079870947db0..4a49f01cbb5d 100644
--- a/clang/test/CXX/expr/expr.const/p5-0x.cpp
+++ b/clang/test/CXX/expr/expr.const/p5-0x.cpp
@@ -7,15 +7,15 @@ namespace std_example {
struct A {
constexpr A(int i) : val(i) { }
- constexpr operator int() const { return val; }
- constexpr operator long() const { return 43; }
+ constexpr operator int() const { return val; } // expected-note {{here}}
+ constexpr operator long() const { return 43; } // expected-note {{here}}
private:
int val;
};
template<int> struct X { };
constexpr A a = 42;
X<a> x; // ok, unique conversion to int
-int ary[a]; // expected-error {{size of array has non-integer type 'const std_example::A'}}
+int ary[a]; // expected-error {{ambiguous conversion from type 'const std_example::A' to an integral or unscoped enumeration type}}
}
@@ -23,15 +23,15 @@ struct OK {
constexpr OK() {}
constexpr operator int() const { return 8; }
} constexpr ok;
-extern struct Incomplete incomplete; // expected-note 4{{forward decl}}
+extern struct Incomplete incomplete; // expected-note 5{{forward decl}}
struct Explicit {
constexpr Explicit() {}
- constexpr explicit operator int() const { return 4; } // expected-note 4{{here}}
+ constexpr explicit operator int() const { return 4; } // expected-note 5{{here}}
} constexpr expl;
struct Ambiguous {
constexpr Ambiguous() {}
- constexpr operator int() const { return 2; } // expected-note 4{{here}}
- constexpr operator long() const { return 1; } // expected-note 4{{here}}
+ constexpr operator int() const { return 2; } // expected-note 5{{here}}
+ constexpr operator long() const { return 1; } // expected-note 5{{here}}
} constexpr ambig;
constexpr int test_ok = ok; // ok
@@ -68,12 +68,10 @@ alignas(ambig) int alignas4; // expected-error {{ambiguous conversion}}
// [dcl.array]p1: If the constant-expression is present, it shall be an integral
// constant expression
-// FIXME: The VLA recovery results in us giving diagnostics which aren't great
-// here.
int array1[ok];
-int array2[incomplete]; // expected-error {{non-integer type}}
-int array3[expl]; // expected-error {{non-integer type}}
-int array4[ambig]; // expected-error {{non-integer type}}
+int array2[incomplete]; // expected-error {{incomplete}}
+int array3[expl]; // expected-error {{explicit conversion}}
+int array4[ambig]; // expected-error {{ambiguous conversion}}
// [class.bit]p1: The constasnt-expression shall be an integral constant
// expression
diff --git a/clang/test/OpenMP/atomic_messages.c b/clang/test/OpenMP/atomic_messages.c
index bf3a3bbd3090..053771b5b25d 100644
--- a/clang/test/OpenMP/atomic_messages.c
+++ b/clang/test/OpenMP/atomic_messages.c
@@ -387,9 +387,9 @@ void hint() {
a += 1;
#pragma omp atomic hint(+ // omp45-error {{unexpected OpenMP clause 'hint' in directive '#pragma omp atomic'}} expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
a += 1;
-#pragma omp atomic hint(a // omp45-error {{unexpected OpenMP clause 'hint' in directive '#pragma omp atomic'}} expected-error {{expected ')'}} expected-note {{to match this '('}} omp50-error {{expression is not an integer constant expression}}
+#pragma omp atomic hint(a // omp45-error {{unexpected OpenMP clause 'hint' in directive '#pragma omp atomic'}} expected-error {{expected ')'}} expected-note {{to match this '('}} omp50-error {{integer constant expression}}
a += 1;
-#pragma omp atomic hint(a) // omp45-error {{unexpected OpenMP clause 'hint' in directive '#pragma omp atomic'}} omp50-error {{expression is not an integer constant expression}}
+#pragma omp atomic hint(a) // omp45-error {{unexpected OpenMP clause 'hint' in directive '#pragma omp atomic'}} omp50-error {{integer constant expression}}
a += 1;
#pragma omp atomic hint(1) hint(1) // omp45-error 2 {{unexpected OpenMP clause 'hint' in directive '#pragma omp atomic'}} expected-error {{directive '#pragma omp atomic' cannot contain more than one 'hint' clause}}
a += 1;
diff --git a/clang/test/OpenMP/critical_messages.cpp b/clang/test/OpenMP/critical_messages.cpp
index 097cce2fac64..4fc2b201c820 100644
--- a/clang/test/OpenMP/critical_messages.cpp
+++ b/clang/test/OpenMP/critical_messages.cpp
@@ -65,7 +65,7 @@ int tmain(int argc, char **argv) { // expected-note {{declared here}}
foo();
#pragma omp critical (name2) hint(+ // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
foo();
- #pragma omp critical (name2) hint(argc) // expected-error {{expression is not an integral constant expression}} expected-note {{read of non-const variable 'argc' is not allowed in a constant expression}}
+ #pragma omp critical (name2) hint(argc) // expected-error {{integral constant expression}} expected-note {{read of non-const variable 'argc' is not allowed in a constant expression}}
foo();
#pragma omp critical (name) hint(N) // expected-error {{argument to 'hint' clause must be a strictly positive integer value}} expected-error {{constructs with the same name must have a 'hint' clause with the same value}} expected-note {{'hint' clause with value '4'}}
foo();
@@ -128,7 +128,7 @@ int main(int argc, char **argv) { // expected-note {{declared here}}
foo();
#pragma omp critical (name2) hint(+ // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
foo();
- #pragma omp critical (name2) hint(argc) // expected-error {{expression is not an integral constant expression}} expected-note {{read of non-const variable 'argc' is not allowed in a constant expression}}
+ #pragma omp critical (name2) hint(argc) // expected-error {{integral constant expression}} expected-note {{read of non-const variable 'argc' is not allowed in a constant expression}}
foo();
#pragma omp critical (name) hint(23) // expected-note {{previous 'hint' clause with value '23'}}
foo();
diff --git a/clang/test/OpenMP/declare_simd_messages.cpp b/clang/test/OpenMP/declare_simd_messages.cpp
index 44cf41541f50..a3188de8bd64 100644
--- a/clang/test/OpenMP/declare_simd_messages.cpp
+++ b/clang/test/OpenMP/declare_simd_messages.cpp
@@ -56,7 +56,7 @@ void h(int *hp, int *hp2, int *hq, int *lin) {
#pragma omp declare simd inbranch inbranch notinbranch // expected-error {{unexpected 'notinbranch' clause, 'inbranch' is specified already}}
#pragma omp declare simd notinbranch notinbranch inbranch // expected-error {{unexpected 'inbranch' clause, 'notinbranch' is specified already}}
// expected-note at +2 {{read of non-const variable 'b' is not allowed in a constant expression}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp declare simd simdlen(b)
// expected-error at +1 {{directive '#pragma omp declare simd' cannot contain more than one 'simdlen' clause}}
#pragma omp declare simd simdlen(32) simdlen(c)
diff --git a/clang/test/OpenMP/distribute_collapse_messages.cpp b/clang/test/OpenMP/distribute_collapse_messages.cpp
index 33035f2bc220..6a0c8c31cd97 100644
--- a/clang/test/OpenMP/distribute_collapse_messages.cpp
+++ b/clang/test/OpenMP/distribute_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp distribute collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp distribute collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -43,13 +43,13 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp distribute' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +1 2 {{expression is not an integral constant expression}}
+ // expected-error at +1 2 {{integral constant expression}}
#pragma omp distribute collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp distribute collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -78,12 +78,12 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
- #pragma omp distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+ #pragma omp distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
- // expected-error at +3 {{expression is not an integral constant expression}}
+ // expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp distribute' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp distribute collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -91,7 +91,7 @@ int main(int argc, char **argv) {
#pragma omp distribute collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp
index f0bd4c28403c..3883575e68bc 100644
--- a/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp
+++ b/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp
@@ -35,7 +35,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
#pragma omp teams
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp distribute parallel for collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -54,7 +54,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp distribute parallel for', but found only 1}}
// expected-error at +8 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +7 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -67,7 +67,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp distribute parallel for collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
#pragma omp teams
#pragma omp distribute parallel for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute parallel for' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute parallel for', but found only 1}}
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
#pragma omp teams
#pragma omp distribute parallel for collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +8 {{expression is not an integral constant expression}}
+ // expected-error at +8 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp distribute parallel for collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp
index 4a32eb357ec8..9bebccafcc68 100644
--- a/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp
@@ -221,7 +221,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
#pragma omp target
#pragma omp teams
-#pragma omp distribute parallel for simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
+#pragma omp distribute parallel for simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{integral constant expression}}
for (I k = 0; k < argc; ++k) { ++k; v += j; }
diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp
index a3e324d32bc6..ff9a728ee2de 100644
--- a/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp
@@ -35,7 +35,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
#pragma omp teams
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp distribute parallel for simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -54,7 +54,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp distribute parallel for simd', but found only 1}}
// expected-error at +8 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +7 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -67,7 +67,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp distribute parallel for simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
#pragma omp teams
#pragma omp distribute parallel for simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute parallel for simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute parallel for simd', but found only 1}}
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
#pragma omp teams
#pragma omp distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +8 {{expression is not an integral constant expression}}
+ // expected-error at +8 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp distribute parallel for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_misc_messages.c b/clang/test/OpenMP/distribute_parallel_for_simd_misc_messages.c
index 87da43322c76..57c11edda7d8 100644
--- a/clang/test/OpenMP/distribute_parallel_for_simd_misc_messages.c
+++ b/clang/test/OpenMP/distribute_parallel_for_simd_misc_messages.c
@@ -192,13 +192,13 @@ void test_safelen() {
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute parallel for simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute parallel for simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -315,13 +315,13 @@ void test_simdlen() {
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute parallel for simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute parallel for simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
@@ -459,13 +459,13 @@ void test_collapse() {
; // expected-error {{expected 4 for loops after '#pragma omp distribute parallel for simd', but found only 1}}
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute parallel for simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute parallel for simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
index e39b5d9fbc59..2d659efadbbd 100644
--- a/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
#pragma omp teams
-#pragma omp distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -69,7 +69,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp teams
// expected-error at +3 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -81,7 +81,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -142,7 +142,7 @@ int main(int argc, char **argv) {
#endif
#pragma omp target
#pragma omp teams
-#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
#pragma omp teams
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -165,7 +165,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp
index 7cede341626e..b4f40e8e5c23 100644
--- a/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp
@@ -38,7 +38,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +5 {{expected ')'}} expected-note at +5 {{to match this '('}}
-// expected-error at +4 2 {{expression is not an integral constant expression}}
+// expected-error at +4 2 {{integral constant expression}}
// expected-note at +3 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target
#pragma omp teams
@@ -72,7 +72,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp teams
// expected-error at +3 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp distribute parallel for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -84,7 +84,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -145,7 +145,7 @@ int main(int argc, char **argv) {
#endif
#pragma omp target
#pragma omp teams
-#pragma omp distribute parallel for simd simdlen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp distribute parallel for simd simdlen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -155,7 +155,7 @@ int main(int argc, char **argv) {
#endif
#pragma omp target
#pragma omp teams
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
#pragma omp distribute parallel for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5)
@@ -169,7 +169,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_simd_aligned_messages.cpp b/clang/test/OpenMP/distribute_simd_aligned_messages.cpp
index 6f7c04f82b4c..eb0fc8a1eae1 100644
--- a/clang/test/OpenMP/distribute_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/distribute_simd_aligned_messages.cpp
@@ -221,7 +221,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
#pragma omp target
#pragma omp teams
-#pragma omp distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
+#pragma omp distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{integral constant expression}}
for (I k = 0; k < argc; ++k) { ++k; v += j; }
diff --git a/clang/test/OpenMP/distribute_simd_collapse_messages.cpp b/clang/test/OpenMP/distribute_simd_collapse_messages.cpp
index 2d3983cc5553..418094bc1a7b 100644
--- a/clang/test/OpenMP/distribute_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/distribute_simd_collapse_messages.cpp
@@ -35,7 +35,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
#pragma omp teams
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp distribute simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -54,7 +54,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp distribute simd', but found only 1}}
// expected-error at +8 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'collapse' clause}}
// expected-error at +7 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -67,7 +67,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp distribute simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
#pragma omp teams
#pragma omp distribute simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute simd', but found only 1}}
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
#pragma omp teams
#pragma omp distribute simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +8 {{expression is not an integral constant expression}}
+ // expected-error at +8 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp distribute simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_simd_misc_messages.c b/clang/test/OpenMP/distribute_simd_misc_messages.c
index 0a46766e162f..fa0cdd0e939d 100644
--- a/clang/test/OpenMP/distribute_simd_misc_messages.c
+++ b/clang/test/OpenMP/distribute_simd_misc_messages.c
@@ -194,13 +194,13 @@ void test_safelen() {
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -317,13 +317,13 @@ void test_simdlen() {
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
@@ -461,13 +461,13 @@ void test_collapse() {
; // expected-error {{expected 4 for loops after '#pragma omp distribute simd', but found only 1}}
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp target
#pragma omp teams
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp distribute simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/distribute_simd_safelen_messages.cpp b/clang/test/OpenMP/distribute_simd_safelen_messages.cpp
index c28b1bf1a1ff..bffc8ec85469 100644
--- a/clang/test/OpenMP/distribute_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/distribute_simd_safelen_messages.cpp
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
#pragma omp teams
-#pragma omp distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -69,7 +69,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp teams
// expected-error at +3 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -81,7 +81,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -142,7 +142,7 @@ int main(int argc, char **argv) {
#endif
#pragma omp target
#pragma omp teams
-#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
#pragma omp teams
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -165,7 +165,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp b/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp
index c28b1bf1a1ff..bffc8ec85469 100644
--- a/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
#pragma omp teams
-#pragma omp distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -69,7 +69,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp teams
// expected-error at +3 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -81,7 +81,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +6 2 {{expression is not an integral constant expression}}
+ // expected-error at +6 2 {{integral constant expression}}
#else
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -142,7 +142,7 @@ int main(int argc, char **argv) {
#endif
#pragma omp target
#pragma omp teams
-#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
#pragma omp teams
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -165,7 +165,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#else
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/for_collapse_messages.cpp b/clang/test/OpenMP/for_collapse_messages.cpp
index 6fe6ef79c4c3..d2cfccd13ae5 100644
--- a/clang/test/OpenMP/for_collapse_messages.cpp
+++ b/clang/test/OpenMP/for_collapse_messages.cpp
@@ -33,7 +33,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp for collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -46,7 +46,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp for', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp for' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -55,7 +55,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -81,13 +81,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp for', but found only 1}}
#pragma omp for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp for', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp for collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -98,7 +98,7 @@ int main(int argc, char **argv) {
#pragma omp for collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/for_misc_messages.c b/clang/test/OpenMP/for_misc_messages.c
index 21a3bce7345c..f03da5879fda 100644
--- a/clang/test/OpenMP/for_misc_messages.c
+++ b/clang/test/OpenMP/for_misc_messages.c
@@ -190,12 +190,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp for', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/for_ordered_clause.cpp b/clang/test/OpenMP/for_ordered_clause.cpp
index 7ccf570def37..537e52b60511 100644
--- a/clang/test/OpenMP/for_ordered_clause.cpp
+++ b/clang/test/OpenMP/for_ordered_clause.cpp
@@ -31,7 +31,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp for ordered(argc
for (int i = ST; i < N; i++)
@@ -48,7 +48,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
argv[0][i] = argv[0][i] - argv[0][i - ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp for', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp for' cannot contain more than one 'ordered' clause}}
// expected-error at +5 {{argument to 'ordered' clause must be a strictly positive integer value}}
-// expected-error at +4 2 {{expression is not an integral constant expression}}
+// expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -59,7 +59,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
#if __cplusplus <= 199711L
-// expected-error at +4 2 {{expression is not an integral constant expression}}
+// expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -101,14 +101,14 @@ int main(int argc, char **argv) {
#pragma omp for ordered(2 + 2)) // expected-warning {{extra tokens at the end of '#pragma omp for' are ignored}} expected-note {{as specified in 'ordered' clause}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error {{expected 4 for loops after '#pragma omp for', but found only 1}}
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp for ordered(foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
-// expected-error at +6 {{expression is not an integral constant expression}}
+// expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -121,7 +121,7 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
#if __cplusplus <= 199711L
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/for_simd_aligned_messages.cpp b/clang/test/OpenMP/for_simd_aligned_messages.cpp
index c7122bbe4fbb..e925d00139f9 100644
--- a/clang/test/OpenMP/for_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/for_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp for simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp for simd aligned(f)
diff --git a/clang/test/OpenMP/for_simd_collapse_messages.cpp b/clang/test/OpenMP/for_simd_collapse_messages.cpp
index 2781bb9d5e22..efd9d39e4719 100644
--- a/clang/test/OpenMP/for_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/for_simd_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp for simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp for simd', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp for simd', but found only 1}}
#pragma omp for simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp for simd', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp for simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/for_simd_misc_messages.c b/clang/test/OpenMP/for_simd_misc_messages.c
index 42cd8192b896..fb3ed365d02b 100644
--- a/clang/test/OpenMP/for_simd_misc_messages.c
+++ b/clang/test/OpenMP/for_simd_misc_messages.c
@@ -156,11 +156,11 @@ void test_safelen() {
#pragma omp for simd safelen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -241,11 +241,11 @@ void test_simdlen() {
#pragma omp for simd simdlen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
@@ -357,12 +357,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp for simd', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp for simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/for_simd_safelen_messages.cpp b/clang/test/OpenMP/for_simd_safelen_messages.cpp
index c97e2a951a83..f7142972d0a9 100644
--- a/clang/test/OpenMP/for_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/for_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp for simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp for simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp for simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp for simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/for_simd_simdlen_messages.cpp b/clang/test/OpenMP/for_simd_simdlen_messages.cpp
index 5ae2fbbc8dae..eb0455e618f1 100644
--- a/clang/test/OpenMP/for_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/for_simd_simdlen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for simd simdlen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp for simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp for simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp for simd simdlen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp for simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp for simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp for simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/master_taskloop_collapse_messages.cpp b/clang/test/OpenMP/master_taskloop_collapse_messages.cpp
index 83e5b85c4745..99cc4263ebb7 100644
--- a/clang/test/OpenMP/master_taskloop_collapse_messages.cpp
+++ b/clang/test/OpenMP/master_taskloop_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp master taskloop collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp master taskloop', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp master taskloop' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp master taskloop', but found only 1}}
#pragma omp master taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp master taskloop', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp master taskloop collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp master taskloop collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/master_taskloop_misc_messages.c b/clang/test/OpenMP/master_taskloop_misc_messages.c
index 17f2831b1227..5228736b0c20 100644
--- a/clang/test/OpenMP/master_taskloop_misc_messages.c
+++ b/clang/test/OpenMP/master_taskloop_misc_messages.c
@@ -179,12 +179,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp master taskloop', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp master taskloop collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp master taskloop collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp
index 349fd601e5ef..c2c56dfdb458 100644
--- a/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp master taskloop simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp master taskloop simd aligned(f)
diff --git a/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp
index 653f52e1fada..787c50aade7b 100644
--- a/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp master taskloop simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp master taskloop simd', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp master taskloop simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp master taskloop simd', but found only 1}}
#pragma omp master taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp master taskloop simd', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp master taskloop simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp master taskloop simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/master_taskloop_simd_misc_messages.c b/clang/test/OpenMP/master_taskloop_simd_misc_messages.c
index f9de78612dec..6c7759bdce0d 100644
--- a/clang/test/OpenMP/master_taskloop_simd_misc_messages.c
+++ b/clang/test/OpenMP/master_taskloop_simd_misc_messages.c
@@ -180,12 +180,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp master taskloop simd', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp master taskloop simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp master taskloop simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp
index bdf4f6b06580..9420cde08365 100644
--- a/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp master taskloop simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp master taskloop simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp master taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp master taskloop simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp master taskloop simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp
index 2deb98dcffa8..36abee7b5cfe 100644
--- a/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop simd simdlen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp master taskloop simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp master taskloop simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp master taskloop simd simdlen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp master taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp master taskloop simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp master taskloop simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/ordered_messages.cpp b/clang/test/OpenMP/ordered_messages.cpp
index 544c97d36ab3..f6b9dbd6d27f 100644
--- a/clang/test/OpenMP/ordered_messages.cpp
+++ b/clang/test/OpenMP/ordered_messages.cpp
@@ -159,7 +159,7 @@ T foo() {
#pragma omp ordered depend(sink : i, j)
#pragma omp ordered depend(sink : j, i) // expected-error {{expected 'i' loop iteration variable}} expected-error {{expected 'j' loop iteration variable}}
#pragma omp ordered depend(sink : i, j, k) // expected-error {{unexpected expression: number of expressions is larger than the number of associated loops}}
-#pragma omp ordered depend(sink : i+foo(), j/4) // expected-error {{expression is not an integral constant expression}} expected-error {{expected '+' or '-' operation}}
+#pragma omp ordered depend(sink : i+foo(), j/4) // expected-error {{integral constant expression}} expected-error {{expected '+' or '-' operation}}
#if __cplusplus >= 201103L
// expected-note at -2 {{non-constexpr function 'foo' cannot be used in a constant expression}}
#endif
@@ -296,7 +296,7 @@ int k;
#pragma omp ordered depend(sink : i, j) allocate(i) // expected-error {{unexpected OpenMP clause 'allocate' in directive '#pragma omp ordered'}}
#pragma omp ordered depend(sink : j, i) // expected-error {{expected 'i' loop iteration variable}} expected-error {{expected 'j' loop iteration variable}}
#pragma omp ordered depend(sink : i, j, k) // expected-error {{unexpected expression: number of expressions is larger than the number of associated loops}}
-#pragma omp ordered depend(sink : i+foo(), j/4) // expected-error {{expression is not an integral constant expression}} expected-error {{expected '+' or '-' operation}}
+#pragma omp ordered depend(sink : i+foo(), j/4) // expected-error {{integral constant expression}} expected-error {{expected '+' or '-' operation}}
#if __cplusplus >= 201103L
// expected-note at -2 {{non-constexpr function 'foo' cannot be used in a constant expression}}
#endif
diff --git a/clang/test/OpenMP/parallel_for_collapse_messages.cpp b/clang/test/OpenMP/parallel_for_collapse_messages.cpp
index d03e1b820e31..ba48ce50178a 100644
--- a/clang/test/OpenMP/parallel_for_collapse_messages.cpp
+++ b/clang/test/OpenMP/parallel_for_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel for collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp parallel for', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for', but found only 1}}
#pragma omp parallel for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel for collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4{{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp parallel for collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_for_misc_messages.c b/clang/test/OpenMP/parallel_for_misc_messages.c
index 38e50915ddf5..2c8643674286 100644
--- a/clang/test/OpenMP/parallel_for_misc_messages.c
+++ b/clang/test/OpenMP/parallel_for_misc_messages.c
@@ -142,11 +142,11 @@ void test_collapse() {
#pragma omp parallel for collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp parallel for', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/parallel_for_ordered_messages.cpp b/clang/test/OpenMP/parallel_for_ordered_messages.cpp
index 027e3b0797d7..7b46191fba92 100644
--- a/clang/test/OpenMP/parallel_for_ordered_messages.cpp
+++ b/clang/test/OpenMP/parallel_for_ordered_messages.cpp
@@ -30,7 +30,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel for ordered(argc
for (int i = ST; i < N; i++)
@@ -47,7 +47,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
argv[0][i] = argv[0][i] - argv[0][i - ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp parallel for', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp parallel for' cannot contain more than one 'ordered' clause}}
// expected-error at +5 {{argument to 'ordered' clause must be a strictly positive integer value}}
-// expected-error at +4 2 {{expression is not an integral constant expression}}
+// expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -58,7 +58,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
#if __cplusplus <= 199711L
-// expected-error at +4 2 {{expression is not an integral constant expression}}
+// expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -92,14 +92,14 @@ int main(int argc, char **argv) {
#pragma omp parallel for ordered(2 + 2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} expected-note {{as specified in 'ordered' clause}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for', but found only 1}}
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel for ordered(foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
-// expected-error at +6 {{expression is not an integral constant expression}}
+// expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -112,7 +112,7 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
#if __cplusplus <= 199711L
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp
index 76c64de3fec1..e9ef234def24 100644
--- a/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp parallel for simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp parallel for simd aligned(f)
diff --git a/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp
index 4b2c8b577b77..f04b1881db3b 100644
--- a/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel for simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp parallel for simd', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for simd', but found only 1}}
#pragma omp parallel for simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for simd', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel for simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp parallel for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_for_simd_misc_messages.c b/clang/test/OpenMP/parallel_for_simd_misc_messages.c
index 244a26f2a822..d2b088a29c57 100644
--- a/clang/test/OpenMP/parallel_for_simd_misc_messages.c
+++ b/clang/test/OpenMP/parallel_for_simd_misc_messages.c
@@ -149,11 +149,11 @@ void test_safelen() {
#pragma omp parallel for simd safelen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -234,11 +234,11 @@ void test_simdlen() {
#pragma omp parallel for simd simdlen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
@@ -350,12 +350,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp parallel for simd', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel for simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp
index b0951de6623d..29da9ff27a0b 100644
--- a/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel for simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp parallel for simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp parallel for simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
index 29a340e52f2d..8e0bf9ce6d7b 100644
--- a/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for simd simdlen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel for simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel for simd simdlen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp parallel for simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel for simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp parallel for simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp
index bbed5d18ea42..d93222a4b5c7 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp
+++ b/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel master taskloop collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp parallel master taskloop', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop', but found only 1}}
#pragma omp parallel master taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel master taskloop collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp parallel master taskloop collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_master_taskloop_misc_messages.c b/clang/test/OpenMP/parallel_master_taskloop_misc_messages.c
index 8c03434ed5db..8993ffdf27bf 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_misc_messages.c
+++ b/clang/test/OpenMP/parallel_master_taskloop_misc_messages.c
@@ -182,12 +182,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel master taskloop collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel master taskloop collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp
index b5b079f6dc7a..c6a5f6b90d3a 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp parallel master taskloop simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp parallel master taskloop simd aligned(f)
diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp
index 667c39ad4299..c97cec72b514 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel master taskloop simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp parallel master taskloop simd', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop simd', but found only 1}}
#pragma omp parallel master taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop simd', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel master taskloop simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp parallel master taskloop simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_misc_messages.c b/clang/test/OpenMP/parallel_master_taskloop_simd_misc_messages.c
index 1553f88289aa..39df42b871db 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_simd_misc_messages.c
+++ b/clang/test/OpenMP/parallel_master_taskloop_simd_misc_messages.c
@@ -183,12 +183,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop simd', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel master taskloop simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp parallel master taskloop simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp
index 2a860b767e25..612a39f63412 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel master taskloop simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp parallel master taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel master taskloop simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp parallel master taskloop simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp
index 9899ce380a46..16a543e13ada 100644
--- a/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop simd simdlen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp parallel master taskloop simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp parallel master taskloop simd simdlen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp parallel master taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp parallel master taskloop simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp parallel master taskloop simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/simd_aligned_messages.cpp b/clang/test/OpenMP/simd_aligned_messages.cpp
index 8b5edb81d7fb..f34eabd37e45 100644
--- a/clang/test/OpenMP/simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/simd_aligned_messages.cpp
@@ -153,7 +153,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp simd aligned(f)
diff --git a/clang/test/OpenMP/simd_collapse_messages.cpp b/clang/test/OpenMP/simd_collapse_messages.cpp
index 978ae29fcad6..37915743b129 100644
--- a/clang/test/OpenMP/simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/simd_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp simd', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp simd', but found only 1}}
#pragma omp simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp simd', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/simd_misc_messages.c b/clang/test/OpenMP/simd_misc_messages.c
index 8f731df214a0..a76aad9cec6d 100644
--- a/clang/test/OpenMP/simd_misc_messages.c
+++ b/clang/test/OpenMP/simd_misc_messages.c
@@ -155,11 +155,11 @@ void test_safelen() {
#pragma omp simd safelen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -240,11 +240,11 @@ void test_simdlen() {
#pragma omp simd simdlen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
@@ -341,11 +341,11 @@ void test_collapse() {
#pragma omp simd collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp simd', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/simd_safelen_messages.cpp b/clang/test/OpenMP/simd_safelen_messages.cpp
index 7a557781a758..2cc5a8848448 100644
--- a/clang/test/OpenMP/simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/simd_simdlen_messages.cpp b/clang/test/OpenMP/simd_simdlen_messages.cpp
index 0b7b800c26a7..d7f86e05f3a1 100644
--- a/clang/test/OpenMP/simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/simd_simdlen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp simd simdlen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp simd simdlen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp
index 98700b87e5eb..0ee442cd443b 100644
--- a/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target parallel for collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target parallel for collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp target parallel for', but found only 1}}
// expected-error at +3 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +1 2 {{expression is not an integral constant expression}}
+ // expected-error at +1 2 {{integral constant expression}}
#pragma omp target parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
#if __cplusplus >= 201103L
// expected-note at -2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -51,7 +51,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#if __cplusplus >= 201103L
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#else
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
#endif
#pragma omp target parallel for collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -75,12 +75,12 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target parallel for', but found only 1}}
#pragma omp target parallel for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target parallel for', but found only 1}}
- #pragma omp target parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+ #pragma omp target parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at -2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +3 {{expression is not an integral constant expression}}
+ // expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -93,7 +93,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#else
- // expected-error at +2 {{expression is not an integral constant expression}}
+ // expected-error at +2 {{integral constant expression}}
#endif
#pragma omp target parallel for collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
diff --git a/clang/test/OpenMP/target_parallel_for_misc_messages.c b/clang/test/OpenMP/target_parallel_for_misc_messages.c
index 789d7e04db26..b9d34da99c3c 100644
--- a/clang/test/OpenMP/target_parallel_for_misc_messages.c
+++ b/clang/test/OpenMP/target_parallel_for_misc_messages.c
@@ -142,11 +142,11 @@ void test_collapse() {
#pragma omp target parallel for collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target parallel for', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp b/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp
index b703f251f4e0..8396273d65d3 100644
--- a/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp
@@ -30,7 +30,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target parallel for ordered(argc
for (int i = ST; i < N; i++)
@@ -50,7 +50,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
#endif
// expected-error at +3 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'ordered' clause}}
// expected-error at +2 {{argument to 'ordered' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target parallel for ordered(foobool(argc)), ordered(true), ordered(-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
@@ -60,7 +60,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}
#if __cplusplus >= 201103L
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#else
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
#endif
#pragma omp target parallel for ordered(argv[1] = 2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++)
@@ -95,13 +95,13 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target parallel for ordered(foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target parallel for ordered(foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'ordered' clause}}
// expected-error at +1 {{argument to 'ordered' clause must be a strictly positive integer value}}
#pragma omp target parallel for ordered(foobool(argc)), ordered(true), ordered(-5)
@@ -113,7 +113,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#else
- // expected-error at +2 {{expression is not an integral constant expression}}
+ // expected-error at +2 {{integral constant expression}}
#endif
#pragma omp target parallel for ordered(argv[1] = 2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++)
diff --git a/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp
index b73abba48e22..c635663431f6 100644
--- a/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp target parallel for simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp target parallel for simd aligned(f)
diff --git a/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp
index df1b27d28343..309ba48e73fd 100644
--- a/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp
@@ -28,7 +28,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target parallel for simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target parallel for simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -44,13 +44,13 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +1 2 {{expression is not an integral constant expression}}
+ // expected-error at +1 2 {{integral constant expression}}
#pragma omp target parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target parallel for simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-note at +2 {{read of non-const variable 'j' is not allowed in a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp target parallel for simd collapse (j=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target parallel for simd collapse (1)
@@ -77,12 +77,12 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
- #pragma omp target parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+ #pragma omp target parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
- // expected-error at +3 {{expression is not an integral constant expression}}
+ // expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp target parallel for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
// expected-note at +2 {{read of non-const variable 'j' is not allowed in a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp target parallel for simd collapse (j=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
// expected-error at +3 {{statement after '#pragma omp target parallel for simd' must be a for loop}}
diff --git a/clang/test/OpenMP/target_parallel_for_simd_misc_messages.c b/clang/test/OpenMP/target_parallel_for_simd_misc_messages.c
index 29011a2c9ba7..8084a89ad109 100644
--- a/clang/test/OpenMP/target_parallel_for_simd_misc_messages.c
+++ b/clang/test/OpenMP/target_parallel_for_simd_misc_messages.c
@@ -144,11 +144,11 @@ void test_collapse() {
#pragma omp target parallel for simd collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for simd collapse(foo())
for (i = 0; i < 16; ++i)
;
@@ -379,11 +379,11 @@ void test_safelen() {
#pragma omp target parallel for simd safelen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -464,11 +464,11 @@ void test_simdlen() {
#pragma omp target parallel for simd simdlen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target parallel for simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp
index 235cbe464f69..ed3e06541978 100644
--- a/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp
@@ -57,7 +57,7 @@ T tmain(T argc, S **argv) {
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
// expected-note at +2 {{read of non-const variable 'j' is not allowed in a constant expression}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp target parallel for simd ordered(j = 2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i - ST];
@@ -97,13 +97,13 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target parallel for simd ordered(foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target parallel for simd ordered(foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'ordered' clause}}
// expected-error at +1 {{argument to 'ordered' clause must be a strictly positive integer value}}
#pragma omp target parallel for simd ordered(foobool(argc)), ordered(true), ordered(-5)
@@ -113,7 +113,7 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
// expected-note at +2 {{read of non-const variable 'j' is not allowed in a constant expression}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp target parallel for simd ordered(j = 2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i - 4];
diff --git a/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp
index 87aaa83a7811..f3d4104deda4 100644
--- a/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target parallel for simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target parallel for simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target parallel for simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp target parallel for simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target parallel for simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp target parallel for simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp
index 17a931c9f120..9d17d54ded7d 100644
--- a/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp
@@ -30,7 +30,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target parallel for simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -47,7 +47,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
// expected-error at +6 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -58,7 +58,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -99,14 +99,14 @@ int main(int argc, char **argv) {
#pragma omp target parallel for simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target parallel for simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_simd_aligned_messages.cpp b/clang/test/OpenMP/target_simd_aligned_messages.cpp
index 3069e702733b..e3b9ec47fba0 100644
--- a/clang/test/OpenMP/target_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/target_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp target simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp target simd aligned(f)
diff --git a/clang/test/OpenMP/target_simd_collapse_messages.cpp b/clang/test/OpenMP/target_simd_collapse_messages.cpp
index 89b940221d95..0040816c60c1 100644
--- a/clang/test/OpenMP/target_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_simd_collapse_messages.cpp
@@ -26,7 +26,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -42,13 +42,13 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target simd' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +1 2 {{expression is not an integral constant expression}}
+ // expected-error at +1 2 {{integral constant expression}}
#pragma omp target simd collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-note at +2 {{read of non-const variable 'j' is not allowed in a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp target simd collapse (j=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target simd collapse (1)
@@ -75,12 +75,12 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
- #pragma omp target simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+ #pragma omp target simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
- // expected-error at +3 {{expression is not an integral constant expression}}
+ // expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target simd' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target simd collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -88,7 +88,7 @@ int main(int argc, char **argv) {
#pragma omp target simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
// expected-note at +2 {{read of non-const variable 'j' is not allowed in a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp target simd collapse (j=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
// expected-error at +3 {{statement after '#pragma omp target simd' must be a for loop}}
diff --git a/clang/test/OpenMP/target_simd_misc_messages.c b/clang/test/OpenMP/target_simd_misc_messages.c
index 36bbb226f59e..c6b149649046 100644
--- a/clang/test/OpenMP/target_simd_misc_messages.c
+++ b/clang/test/OpenMP/target_simd_misc_messages.c
@@ -144,11 +144,11 @@ void test_collapse() {
#pragma omp target simd collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target simd', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target simd collapse(foo())
for (i = 0; i < 16; ++i)
;
@@ -369,11 +369,11 @@ void test_safelen() {
#pragma omp target simd safelen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target simd safelen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target simd safelen(foo())
for (i = 0; i < 16; ++i)
;
@@ -454,11 +454,11 @@ void test_simdlen() {
#pragma omp target simd simdlen(4, 8)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target simd simdlen(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target simd simdlen(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_simd_safelen_messages.cpp b/clang/test/OpenMP/target_simd_safelen_messages.cpp
index 5e23ba1a74c1..b64af78f72a2 100644
--- a/clang/test/OpenMP/target_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/target_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp target simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp target simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp target simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_simd_simdlen_messages.cpp
index 848770e86a1e..30e8a31069e6 100644
--- a/clang/test/OpenMP/target_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/target_simd_simdlen_messages.cpp
@@ -30,7 +30,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -47,7 +47,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
// expected-error at +6 2 {{directive '#pragma omp target simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -58,7 +58,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -99,14 +99,14 @@ int main(int argc, char **argv) {
#pragma omp target simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp
index 43528dad0ebd..550f644b3f2f 100644
--- a/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp
@@ -33,7 +33,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target teams distribute collapse (argc
for (int i = ST; i < N; i++)
@@ -57,7 +57,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -67,7 +67,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -109,7 +109,7 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute', but found only 1}}
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -120,7 +120,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +5{{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target teams distribute collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -132,7 +132,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_teams_distribute_misc_messages.c b/clang/test/OpenMP/target_teams_distribute_misc_messages.c
index 8fbe7c055b33..42d6605d1525 100644
--- a/clang/test/OpenMP/target_teams_distribute_misc_messages.c
+++ b/clang/test/OpenMP/target_teams_distribute_misc_messages.c
@@ -142,11 +142,11 @@ void test_collapse() {
#pragma omp target teams distribute collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp
index 502e4047ea15..4af605c20b79 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp
@@ -33,7 +33,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target teams distribute parallel for collapse (argc
for (int i = ST; i < N; i++)
@@ -57,7 +57,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -69,7 +69,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#if __cplusplus >= 201103L
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
#endif
#pragma omp target teams distribute parallel for collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++)
@@ -112,14 +112,14 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used}}
#endif
-#pragma omp target teams distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used}}
#endif
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target teams distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -133,7 +133,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +2 {{expression is not an integral constant expression}}
+// expected-error at +2 {{integral constant expression}}
#endif
#pragma omp target teams distribute parallel for collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++)
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_misc_messages.c b/clang/test/OpenMP/target_teams_distribute_parallel_for_misc_messages.c
index 0e59e0d18f59..64654f3d293d 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_misc_messages.c
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_misc_messages.c
@@ -142,11 +142,11 @@ void test_collapse() {
#pragma omp target teams distribute parallel for collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute parallel for', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute parallel for collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute parallel for collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp
index 4be19a4c76b8..40041bebced9 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp
@@ -167,7 +167,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
int v = 0;
-#pragma omp target teams distribute parallel for simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute parallel for simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{integral constant expression}}
for (I k = 0; k < argc; ++k) { ++k; v += j; }
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp
index 81adc34c4dd4..65be6e150736 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp
@@ -33,7 +33,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target teams distribute parallel for simd collapse (argc
for (int i = ST; i < N; i++)
@@ -57,7 +57,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -69,7 +69,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#if __cplusplus >= 201103L
// expected-error at +4 2 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
#endif
#pragma omp target teams distribute parallel for simd collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = ST; i < N; i++)
@@ -112,14 +112,14 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used}}
#endif
-#pragma omp target teams distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +5 {{non-constexpr function 'foobool' cannot be used}}
#endif
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target teams distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -133,7 +133,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +2 {{expression is not an integral constant expression}}
+// expected-error at +2 {{integral constant expression}}
#endif
#pragma omp target teams distribute parallel for simd collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++)
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c
index 97a7607cdaa3..89a71a964635 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c
@@ -144,11 +144,11 @@ void test_collapse() {
#pragma omp target teams distribute parallel for simd collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute parallel for simd', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute parallel for simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute parallel for simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
index 14ac5da1b58e..5d0eaafb531b 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
@@ -32,7 +32,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target teams distribute parallel for simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
-#pragma omp target teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp target teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -106,7 +106,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -115,7 +115,7 @@ int main(int argc, char **argv) {
#endif
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -125,7 +125,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
index e0c89d4c9907..2e0f86cfa9bf 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
@@ -32,7 +32,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target teams distribute parallel for simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
-#pragma omp target teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp target teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -106,7 +106,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -115,7 +115,7 @@ int main(int argc, char **argv) {
#endif
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -125,7 +125,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp
index 2e70bb3ac43d..8f634db9aff0 100644
--- a/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp
@@ -167,7 +167,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
int v = 0;
-#pragma omp target teams distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{integral constant expression}}
for (I k = 0; k < argc; ++k) { ++k; v += j; }
diff --git a/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp
index 612fc728a857..25e99614eb1f 100644
--- a/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp
@@ -33,7 +33,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target teams distribute simd collapse (argc
for (int i = ST; i < N; i++)
@@ -54,7 +54,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
// expected-error at +6 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +4 2 {{expression is not an integral constant expression}}
+// expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -67,7 +67,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -112,11 +112,11 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target teams distribute simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
-// expected-error at +6 {{expression is not an integral constant expression}}
+// expected-error at +6 {{integral constant expression}}
// expected-error at +5 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'collapse' clause}}
// expected-error at +4 {{argument to 'collapse' clause must be a strictly positive integer value}}
#if __cplusplus >= 201103L
@@ -133,7 +133,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#else
- // expected-error at +2 {{expression is not an integral constant expression}}
+ // expected-error at +2 {{integral constant expression}}
#endif
#pragma omp target teams distribute simd collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
for (int i = 4; i < 12; i++)
diff --git a/clang/test/OpenMP/target_teams_distribute_simd_misc_messages.c b/clang/test/OpenMP/target_teams_distribute_simd_misc_messages.c
index 414db21bc253..f577866534c9 100644
--- a/clang/test/OpenMP/target_teams_distribute_simd_misc_messages.c
+++ b/clang/test/OpenMP/target_teams_distribute_simd_misc_messages.c
@@ -144,11 +144,11 @@ void test_collapse() {
#pragma omp target teams distribute simd collapse(4, 8)
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute simd', but found only 1}}
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp target teams distribute simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
index 36af17e93547..af055250d171 100644
--- a/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
@@ -32,7 +32,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target teams distribute simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
-#pragma omp target teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp target teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -106,7 +106,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -115,7 +115,7 @@ int main(int argc, char **argv) {
#endif
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -125,7 +125,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
index 322c64607d03..f54da20babd8 100644
--- a/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
@@ -32,7 +32,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target teams distribute simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
-#pragma omp target teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp target teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +3 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -106,7 +106,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
-#pragma omp target teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp target teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -115,7 +115,7 @@ int main(int argc, char **argv) {
#endif
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -125,7 +125,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/taskloop_collapse_messages.cpp b/clang/test/OpenMP/taskloop_collapse_messages.cpp
index 5551a0254e14..d004c929dd0d 100644
--- a/clang/test/OpenMP/taskloop_collapse_messages.cpp
+++ b/clang/test/OpenMP/taskloop_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp taskloop collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp taskloop', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp taskloop' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp taskloop', but found only 1}}
#pragma omp taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp taskloop', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp taskloop collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp taskloop collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/taskloop_misc_messages.c b/clang/test/OpenMP/taskloop_misc_messages.c
index 795419416204..5805bfe50190 100644
--- a/clang/test/OpenMP/taskloop_misc_messages.c
+++ b/clang/test/OpenMP/taskloop_misc_messages.c
@@ -179,12 +179,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp taskloop', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp taskloop collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp taskloop collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp
index c7a62b8f4a2d..aa3331a0e249 100644
--- a/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp
@@ -151,7 +151,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
for (I k = 0; k < argc; ++k) ++k;
int v = 0;
// expected-note at +2 {{initializer of 'j' is not a constant expression}}
- // expected-error at +1 {{expression is not an integral constant expression}}
+ // expected-error at +1 {{integral constant expression}}
#pragma omp taskloop simd aligned(f:j)
for (I k = 0; k < argc; ++k) { ++k; v += j; }
#pragma omp taskloop simd aligned(f)
diff --git a/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp
index 7730990ac890..485450966898 100644
--- a/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop simd collapse () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp taskloop simd collapse (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp taskloop simd', but found only 1}}
// expected-error at +6 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop simd collapse (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -75,13 +75,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp taskloop simd', but found only 1}}
#pragma omp taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp taskloop simd', but found only 1}}
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp taskloop simd collapse (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
#pragma omp taskloop simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/taskloop_simd_misc_messages.c b/clang/test/OpenMP/taskloop_simd_misc_messages.c
index 9e5fb84f4459..cbcfc0d30a4c 100644
--- a/clang/test/OpenMP/taskloop_simd_misc_messages.c
+++ b/clang/test/OpenMP/taskloop_simd_misc_messages.c
@@ -180,12 +180,12 @@ void test_collapse() {
for (i = 0; i < 16; ++i)
; // expected-error {{expected 4 for loops after '#pragma omp taskloop simd', but found only 1}}
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp taskloop simd collapse(2.5)
for (i = 0; i < 16; ++i)
;
#pragma omp parallel
-// expected-error at +1 {{expression is not an integer constant expression}}
+// expected-error at +1 {{integer constant expression}}
#pragma omp taskloop simd collapse(foo())
for (i = 0; i < 16; ++i)
;
diff --git a/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp
index 8af6dd02cc39..491bc5089eda 100644
--- a/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop simd safelen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp taskloop simd safelen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'safelen' clause}}
// expected-error at +5 {{argument to 'safelen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop simd safelen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp taskloop simd safelen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp taskloop simd safelen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp
index 59e4b8b8f005..cd935c9c1dec 100644
--- a/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp
@@ -27,7 +27,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop simd simdlen () // expected-error {{expected expression}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +3 {{expected ')'}} expected-note at +3 {{to match this '('}}
- // expected-error at +2 2 {{expression is not an integral constant expression}}
+ // expected-error at +2 2 {{integral constant expression}}
// expected-note at +1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp taskloop simd simdlen (argc
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -40,7 +40,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +6 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'simdlen' clause}}
// expected-error at +5 {{argument to 'simdlen' clause must be a strictly positive integer value}}
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp taskloop simd simdlen (S) // expected-error {{'S' does not refer to a value}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +4 2 {{expression is not an integral constant expression}}
+ // expected-error at +4 2 {{integral constant expression}}
#else
// expected-error at +2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -73,13 +73,13 @@ int main(int argc, char **argv) {
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#pragma omp taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp taskloop simd simdlen (foobool(1) > 0 ? 1 : 2)
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
- // expected-error at +6 {{expression is not an integral constant expression}}
+ // expected-error at +6 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
#pragma omp taskloop simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +4 {{expression is not an integral constant expression}}
+ // expected-error at +4 {{integral constant expression}}
#else
// expected-error at +2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/teams_distribute_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_collapse_messages.cpp
index 35a2d1708576..f6c9fd948b30 100644
--- a/clang/test/OpenMP/teams_distribute_collapse_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_collapse_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +4 {{expected ')'}} expected-note at +4 {{to match this '('}}
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
// expected-note at +2 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target
#pragma omp teams distribute collapse (argc
@@ -64,7 +64,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +4 2 {{directive '#pragma omp teams distribute' cannot contain more than one 'collapse' clause}}
// expected-error at +3 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
#pragma omp target
#pragma omp teams distribute collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++)
@@ -78,7 +78,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#if __cplusplus >= 201103L
// expected-error at +5 2 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
@@ -131,14 +131,14 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used}}
#endif
#pragma omp target
-#pragma omp teams distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +6 {{non-constexpr function 'foobool' cannot be used}}
#endif
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
// expected-error at +3 2 {{directive '#pragma omp teams distribute' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target
@@ -154,7 +154,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +5 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp
index 0c8a2e6108d6..1c83ac83785c 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +4 {{expected ')'}} expected-note at +4 {{to match this '('}}
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
// expected-note at +2 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target
#pragma omp teams distribute parallel for collapse (argc
@@ -64,7 +64,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +4 2 {{directive '#pragma omp teams distribute parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +3 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
#pragma omp target
#pragma omp teams distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++)
@@ -77,7 +77,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#if __cplusplus >= 201103L
// expected-error at +5 2 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute parallel for collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
@@ -130,14 +130,14 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used}}
#endif
#pragma omp target
-#pragma omp teams distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +6 {{non-constexpr function 'foobool' cannot be used}}
#endif
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
// expected-error at +3 2 {{directive '#pragma omp teams distribute parallel for' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +5 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute parallel for collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp
index 7d2dd958dea1..f585cb03baaa 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp
@@ -195,7 +195,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
int v = 0;
#pragma omp target
-#pragma omp teams distribute parallel for simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute parallel for simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{integral constant expression}}
for (I k = 0; k < argc; ++k) { ++k; v += j; }
diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp
index 032ab9c4495b..8558f1b31bde 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +4 {{expected ')'}} expected-note at +4 {{to match this '('}}
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
// expected-note at +2 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target
#pragma omp teams distribute parallel for simd collapse (argc
@@ -64,7 +64,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#endif
// expected-error at +4 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +3 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +2 2 {{expression is not an integral constant expression}}
+// expected-error at +2 2 {{integral constant expression}}
#pragma omp target
#pragma omp teams distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
for (int i = ST; i < N; i++)
@@ -77,7 +77,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#if __cplusplus >= 201103L
// expected-error at +5 2 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute parallel for simd collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
@@ -130,14 +130,14 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used}}
#endif
#pragma omp target
-#pragma omp teams distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus >= 201103L
// expected-note at +6 {{non-constexpr function 'foobool' cannot be used}}
#endif
-// expected-error at +4 {{expression is not an integral constant expression}}
+// expected-error at +4 {{integral constant expression}}
// expected-error at +3 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'collapse' clause}}
// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
#pragma omp target
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +5 {{integral constant expression must have integral or unscoped enumeration type}}
#else
-// expected-error at +3 {{expression is not an integral constant expression}}
+// expected-error at +3 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute parallel for simd collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
index 3e455d29348e..019427fe3f3e 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target
-#pragma omp teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -61,7 +61,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
// expected-error at +3 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -72,7 +72,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +5 2 {{expression is not an integral constant expression}}
+ // expected-error at +5 2 {{integral constant expression}}
#else
// expected-error at +3 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target
-#pragma omp teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp target
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -145,7 +145,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +5 {{expression is not an integral constant expression}}
+ // expected-error at +5 {{integral constant expression}}
#else
// expected-error at +3 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
index 3e455d29348e..019427fe3f3e 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target
-#pragma omp teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp teams distribute parallel for simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -61,7 +61,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
// expected-error at +3 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -72,7 +72,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +5 2 {{expression is not an integral constant expression}}
+ // expected-error at +5 2 {{integral constant expression}}
#else
// expected-error at +3 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target
-#pragma omp teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp target
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -145,7 +145,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +5 {{expression is not an integral constant expression}}
+ // expected-error at +5 {{integral constant expression}}
#else
// expected-error at +3 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp
index fa1f29053333..05996a60d8d2 100644
--- a/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp
@@ -195,7 +195,7 @@ template<class I, class C> int foomain(I argc, C **argv) {
int v = 0;
#pragma omp target
-#pragma omp teams distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{integral constant expression}}
for (I k = 0; k < argc; ++k) { ++k; v += j; }
diff --git a/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp
index 75c7c619022c..e7ce4d94386f 100644
--- a/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
// expected-error at +4 {{expected ')'}} expected-note at +4 {{to match this '('}}
-// expected-error at +3 2 {{expression is not an integral constant expression}}
+// expected-error at +3 2 {{integral constant expression}}
// expected-note at +2 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
#pragma omp target
#pragma omp teams distribute simd collapse (argc
@@ -61,7 +61,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
// expected-error at +7 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'collapse' clause}}
// expected-error at +6 {{argument to 'collapse' clause must be a strictly positive integer value}}
-// expected-error at +5 2 {{expression is not an integral constant expression}}
+// expected-error at +5 2 {{integral constant expression}}
#if __cplusplus >= 201103L
// expected-note at +3 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
@@ -75,7 +75,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +5 2 {{expression is not an integral constant expression}}
+ // expected-error at +5 2 {{integral constant expression}}
#else
// expected-error at +3 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -130,11 +130,11 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target
-#pragma omp teams distribute simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
-// expected-error at +7 {{expression is not an integral constant expression}}
+// expected-error at +7 {{integral constant expression}}
// expected-error at +6 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'collapse' clause}}
// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
#if __cplusplus >= 201103L
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
#if __cplusplus >= 201103L
// expected-error at +5 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#else
- // expected-error at +3 {{expression is not an integral constant expression}}
+ // expected-error at +3 {{integral constant expression}}
#endif
#pragma omp target
#pragma omp teams distribute simd collapse (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
diff --git a/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
index 0a2ccf3da8e0..fe83ffdca020 100644
--- a/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target
-#pragma omp teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -61,7 +61,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
// expected-error at +3 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -72,7 +72,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +5 2 {{expression is not an integral constant expression}}
+ // expected-error at +5 2 {{integral constant expression}}
#else
// expected-error at +3 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target
-#pragma omp teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp target
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -145,7 +145,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +5 {{expression is not an integral constant expression}}
+ // expected-error at +5 {{integral constant expression}}
#else
// expected-error at +3 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
index 0a2ccf3da8e0..fe83ffdca020 100644
--- a/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
@@ -36,7 +36,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
#pragma omp target
-#pragma omp teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{expression is not an integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
+#pragma omp teams distribute simd safelen (argc // expected-note {{to match this '('}} expected-error 2 {{integral constant expression}} expected-note 2 {{read of non-const variable 'argc' is not allowed in a constant expression}} expected-error {{expected ')'}}
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -61,7 +61,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
#pragma omp target
// expected-error at +3 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}}
// expected-error at +2 {{argument to 'safelen' clause must be a strictly positive integer value}}
-// expected-error at +1 2 {{expression is not an integral constant expression}}
+// expected-error at +1 2 {{integral constant expression}}
#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = ST; i < N; i++)
argv[0][i] = argv[0][i] - argv[0][i-ST];
@@ -72,7 +72,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
argv[0][i] = argv[0][i] - argv[0][i-ST];
#if __cplusplus <= 199711L
- // expected-error at +5 2 {{expression is not an integral constant expression}}
+ // expected-error at +5 2 {{integral constant expression}}
#else
// expected-error at +3 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
// expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
#endif
#pragma omp target
-#pragma omp teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{expression is not an integral constant expression}}
+#pragma omp teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -134,7 +134,7 @@ int main(int argc, char **argv) {
#pragma omp target
// expected-error at +3 {{argument to 'safelen' clause must be a strictly positive integer value}}
// expected-error at +2 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}}
-// expected-error at +1 {{expression is not an integral constant expression}}
+// expected-error at +1 {{integral constant expression}}
#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5)
for (int i = 4; i < 12; i++)
argv[0][i] = argv[0][i] - argv[0][i-4];
@@ -145,7 +145,7 @@ int main(int argc, char **argv) {
argv[0][i] = argv[0][i] - argv[0][i-4];
#if __cplusplus <= 199711L
- // expected-error at +5 {{expression is not an integral constant expression}}
+ // expected-error at +5 {{integral constant expression}}
#else
// expected-error at +3 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
#endif
diff --git a/clang/test/PCH/cxx-constexpr.cpp b/clang/test/PCH/cxx-constexpr.cpp
index 13f04a79477b..cce3fd851217 100644
--- a/clang/test/PCH/cxx-constexpr.cpp
+++ b/clang/test/PCH/cxx-constexpr.cpp
@@ -16,7 +16,8 @@ const int b = a;
#else
const int a = 5;
-typedef int T[b]; // expected-error {{variable length array}} expected-error {{must be an integer constant expression}}
+typedef int T[b]; // expected-error {{variable length array}} expected-error {{must be an integer constant expression}} expected-note {{initializer of 'b'}}
+// expected-note at 14 {{here}}
typedef int T[5];
#endif
diff --git a/clang/test/Sema/bitfield.c b/clang/test/Sema/bitfield.c
index 13e9480a378b..03b2a22d3ed9 100644
--- a/clang/test/Sema/bitfield.c
+++ b/clang/test/Sema/bitfield.c
@@ -8,7 +8,7 @@ struct a {
// rdar://6081627
int b : 33; // expected-error{{width of bit-field 'b' (33 bits) exceeds width of its type (32 bits)}}
- int c : (1 + 0.25); // expected-error{{expression is not an integer constant expression}}
+ int c : (1 + 0.25); // expected-error{{integer constant expression must have integer type}}
int d : (int)(1 + 0.25);
// rdar://6138816
diff --git a/clang/test/Sema/c89.c b/clang/test/Sema/c89.c
index 89eda9362608..1c0494d8e5a3 100644
--- a/clang/test/Sema/c89.c
+++ b/clang/test/Sema/c89.c
@@ -65,7 +65,7 @@ void test10 (int x[*]); /* expected-warning {{variable length arrays are a C99 f
void test11 (int x[static 4]); /* expected-warning {{static array size is a C99 feature}} */
void test12 (int x[const 4]) { /* expected-warning {{qualifier in array size is a C99 feature}} */
- int Y[x[1]]; /* expected-warning {{variable length arrays are a C99 feature}} */
+ int Y[x[1]]; /* expected-warning {{variable length arrays are a C99 feature}} expected-note {{parameter 'x'}} */
}
/* PR4074 */
diff --git a/clang/test/Sema/complex-int.c b/clang/test/Sema/complex-int.c
index 52ea44dd77fb..f73b338c4010 100644
--- a/clang/test/Sema/complex-int.c
+++ b/clang/test/Sema/complex-int.c
@@ -22,8 +22,8 @@ switch (arr) { // expected-error{{statement requires expression of integer type
case xx: ;
}
switch (ii) {
- case brr: ; // expected-error{{expression is not an integer constant expression}}
- case xx: ; // expected-error{{expression is not an integer constant expression}}
+ case brr: ; // expected-error{{integer constant expression must have integer type}}
+ case xx: ; // expected-error{{integer constant expression must have integer type}}
}
}
diff --git a/clang/test/Sema/warn-vla.c b/clang/test/Sema/warn-vla.c
index 01fe45173bbb..28b8a72877a0 100644
--- a/clang/test/Sema/warn-vla.c
+++ b/clang/test/Sema/warn-vla.c
@@ -2,11 +2,11 @@
// RUN: %clang_cc1 -std=c89 -fsyntax-only -verify -Wvla %s
void test1(int n) {
- int v[n]; // expected-warning {{variable length array used}}
+ int v[n]; // expected-warning {{variable length array}}
}
-void test2(int n, int v[n]) { // expected-warning {{variable length array used}}
+void test2(int n, int v[n]) { // expected-warning {{variable length array}}
}
-void test3(int n, int v[n]); // expected-warning {{variable length array used}}
+void test3(int n, int v[n]); // expected-warning {{variable length array}}
diff --git a/clang/test/SemaCXX/c99-variable-length-array-cxx11.cpp b/clang/test/SemaCXX/c99-variable-length-array-cxx11.cpp
index 68858410ec76..20eceec5032d 100644
--- a/clang/test/SemaCXX/c99-variable-length-array-cxx11.cpp
+++ b/clang/test/SemaCXX/c99-variable-length-array-cxx11.cpp
@@ -17,13 +17,13 @@ struct POD {
};
// We allow VLAs of POD types, only.
-void vla(int N) {
- int array1[N]; // expected-warning{{variable length arrays are a C99 feature}}
- POD array2[N]; // expected-warning{{variable length arrays are a C99 feature}}
- StillPOD array3[N]; // expected-warning{{variable length arrays are a C99 feature}}
- StillPOD2 array4[N][3]; // expected-warning{{variable length arrays are a C99 feature}}
+void vla(int N) { // expected-note 5{{here}}
+ int array1[N]; // expected-warning{{variable length arrays are a C99 feature}} expected-note {{variable 'N'}}
+ POD array2[N]; // expected-warning{{variable length arrays are a C99 feature}} expected-note {{variable 'N'}}
+ StillPOD array3[N]; // expected-warning{{variable length arrays are a C99 feature}} expected-note {{variable 'N'}}
+ StillPOD2 array4[N][3]; // expected-warning{{variable length arrays are a C99 feature}} expected-note {{variable 'N'}}
NonPOD array5[N]; // expected-error{{no matching constructor for initialization of 'NonPOD [N]'}}
- // expected-warning at -1{{variable length arrays are a C99 feature}}
+ // expected-warning at -1{{variable length arrays are a C99 feature}} expected-note at -1 {{variable 'N'}}
// expected-note at -16{{candidate constructor not viable}}
// expected-note at -18{{candidate constructor (the implicit copy constructor) not viable}}
// expected-note at -19{{candidate constructor (the implicit move constructor) not viable}}
diff --git a/clang/test/SemaCXX/c99-variable-length-array.cpp b/clang/test/SemaCXX/c99-variable-length-array.cpp
index 5fd7e3749f7d..d5c3845d1e2f 100644
--- a/clang/test/SemaCXX/c99-variable-length-array.cpp
+++ b/clang/test/SemaCXX/c99-variable-length-array.cpp
@@ -12,6 +12,9 @@ struct POD {
int y;
};
+// expected-note@* 1+{{read of non-const variable}}
+// expected-note@* 1+{{declared here}}
+
// We allow VLAs of POD types, only.
void vla(int N) {
int array1[N]; // expected-warning{{variable length arrays are a C99 feature}}
@@ -74,7 +77,7 @@ void test_accept_array(int N) {
}
// Variably-modified types cannot be used in local classes.
-void local_classes(int N) { // expected-note {{declared here}}
+void local_classes(int N) {
struct X {
int size;
int array[N]; // expected-error{{fields must have a constant size: 'variable length array in structure' extension will never be supported}} \
@@ -97,7 +100,7 @@ namespace rdar8020206 {
template<typename T>
void f(int i) {
const unsigned value = i;
- int array[value * i]; // expected-warning 2{{variable length arrays are a C99 feature}}
+ int array[value * i]; // expected-warning 2{{variable length arrays are a C99 feature}} expected-note 2{{initializer of 'value' is not a constant}}
}
template void f<int>(int); // expected-note{{instantiation of}}
@@ -149,7 +152,7 @@ namespace pr18633 {
const int A1::sz2 = 11;
template<typename T>
void func () {
- int arr[A1::sz]; // expected-warning{{variable length arrays are a C99 feature}}
+ int arr[A1::sz]; // expected-warning{{variable length arrays are a C99 feature}} expected-note {{initializer of 'sz' is unknown}}
}
template<typename T>
void func2 () {
diff --git a/clang/test/SemaCXX/constant-expression-cxx11.cpp b/clang/test/SemaCXX/constant-expression-cxx11.cpp
index c3529fc68266..4b844177790a 100644
--- a/clang/test/SemaCXX/constant-expression-cxx11.cpp
+++ b/clang/test/SemaCXX/constant-expression-cxx11.cpp
@@ -1567,8 +1567,8 @@ namespace RecursiveOpaqueExpr {
namespace VLASizeof {
- void f(int k) {
- int arr[k]; // expected-warning {{C99}}
+ void f(int k) { // expected-note {{here}}
+ int arr[k]; // expected-warning {{C99}} expected-note {{non-const variable 'k'}}
constexpr int n = 1 +
sizeof(arr) // expected-error {{constant expression}}
* 3;
diff --git a/clang/test/SemaCXX/constant-expression.cpp b/clang/test/SemaCXX/constant-expression.cpp
index 69e846bf0ec2..82f9657d84f6 100644
--- a/clang/test/SemaCXX/constant-expression.cpp
+++ b/clang/test/SemaCXX/constant-expression.cpp
@@ -107,15 +107,15 @@ extern const int recurse1;
// recurse2 cannot be used in a constant expression because it is not
// initialized by a constant expression. The same expression appearing later in
// the TU would be a constant expression, but here it is not.
-const int recurse2 = recurse1;
+const int recurse2 = recurse1; // expected-note {{here}}
const int recurse1 = 1;
int array1[recurse1]; // ok
-int array2[recurse2]; // expected-warning {{variable length array}} expected-warning {{integer constant expression}}
+int array2[recurse2]; // expected-warning {{variable length array}} expected-warning {{integer constant expression}} expected-note {{initializer of 'recurse2' is not a constant expression}}
namespace FloatConvert {
typedef int a[(int)42.3];
typedef int a[(int)42.997];
- typedef int b[(long long)4e20]; // expected-warning {{variable length}} expected-error {{variable length}} expected-warning {{'long long' is a C++11 extension}}
+ typedef int b[(long long)4e20]; // expected-warning {{variable length}} expected-error {{variable length}} expected-warning {{'long long' is a C++11 extension}} expected-note {{value 4.0E+20 is outside the range of representable values}}
}
// PR12626
diff --git a/clang/test/SemaCXX/vla-consruct.cpp b/clang/test/SemaCXX/vla-construct.cpp
similarity index 85%
rename from clang/test/SemaCXX/vla-consruct.cpp
rename to clang/test/SemaCXX/vla-construct.cpp
index 09b73704eb07..32526c24b0e0 100644
--- a/clang/test/SemaCXX/vla-consruct.cpp
+++ b/clang/test/SemaCXX/vla-construct.cpp
@@ -23,8 +23,8 @@ void print(int n, int a, int b, int c, int d) {
void test(int n) {
S array_t[n][n+1];
# ifdef PE
- // expected-error at -2 {{variable length arrays are a C99 feature}}
- // expected-error at -3 {{variable length arrays are a C99 feature}}
+ // expected-error at -2 {{variable length arrays are a C99 feature}} expected-note at -2 {{read of non-const}} expected-note at -3 {{here}}
+ // expected-error at -3 {{variable length arrays are a C99 feature}} expected-note at -3 {{read of non-const}} expected-note at -4 {{here}}
# endif
int sizeof_S = sizeof(S);
int sizeof_array_t_0_0 = sizeof(array_t[0][0]);
@@ -38,11 +38,11 @@ int main()
try {
test(2);
} catch(int e) {
- printf("expeption %d\n", e);
+ printf("exception %d\n", e);
}
try {
test(3);
} catch(int e) {
- printf("expeption %d", e);
+ printf("exception %d", e);
}
}
diff --git a/clang/test/SemaCXX/warn-vla.cpp b/clang/test/SemaCXX/warn-vla.cpp
index 081f1c7b21a8..3514264efb2a 100644
--- a/clang/test/SemaCXX/warn-vla.cpp
+++ b/clang/test/SemaCXX/warn-vla.cpp
@@ -1,27 +1,27 @@
// RUN: %clang_cc1 -fsyntax-only -verify -Wvla %s
-void test1(int n) {
- int v[n]; // expected-warning {{variable length array used}}
+void test1(int n) { // expected-note {{here}}
+ int v[n]; // expected-warning {{variable length array}} expected-note {{variable 'n'}}
}
-void test2(int n, int v[n]) { // expected-warning {{variable length array used}}
+void test2(int n, int v[n]) { // expected-warning {{variable length array}} expected-note {{variable 'n'}} expected-note {{here}}
}
-void test3(int n, int v[n]); // expected-warning {{variable length array used}}
+void test3(int n, int v[n]); // expected-warning {{variable length array}} expected-note {{variable 'n'}} expected-note {{here}}
template<typename T>
-void test4(int n) {
- int v[n]; // expected-warning {{variable length array used}}
+void test4(int n) { // expected-note {{here}}
+ int v[n]; // expected-warning {{variable length array}} expected-note {{variable 'n'}}
}
template<typename T>
-void test5(int n, int v[n]) { // expected-warning {{variable length array used}}
+void test5(int n, int v[n]) { // expected-warning {{variable length array}} expected-note {{variable 'n'}} expected-note {{here}}
}
template<typename T>
-void test6(int n, int v[n]); // expected-warning {{variable length array used}}
+void test6(int n, int v[n]); // expected-warning {{variable length array}} expected-note {{variable 'n'}} expected-note {{here}}
template<typename T>
-void test7(int n, T v[n]) { // expected-warning {{variable length array used}}
+void test7(int n, T v[n]) { // expected-warning {{variable length array}} expected-note {{variable 'n'}} expected-note {{here}}
}
diff --git a/clang/test/SemaObjC/class-bitfield.m b/clang/test/SemaObjC/class-bitfield.m
index a225d1157f5f..07d690a94a9d 100644
--- a/clang/test/SemaObjC/class-bitfield.m
+++ b/clang/test/SemaObjC/class-bitfield.m
@@ -7,7 +7,7 @@ @interface X
// rdar://6081627
int b : 33; // expected-error{{width of bit-field 'b' (33 bits) exceeds width of its type (32 bits)}}
- int c : (1 + 0.25); // expected-error{{expression is not an integer constant expression}}
+ int c : (1 + 0.25); // expected-error{{integer constant expression must have integer type}}
int d : (int)(1 + 0.25);
// rdar://6138816
diff --git a/clang/test/SemaTemplate/instantiate-self.cpp b/clang/test/SemaTemplate/instantiate-self.cpp
index 7ada925d2d42..78f54ae7752f 100644
--- a/clang/test/SemaTemplate/instantiate-self.cpp
+++ b/clang/test/SemaTemplate/instantiate-self.cpp
@@ -62,10 +62,11 @@ namespace test5 {
namespace test6 {
template<typename T> constexpr T f(T);
template<typename T> constexpr T g(T t) {
- typedef int arr[f(T())]; // expected-error {{variable length array}}
+ // FIXME: It'd be nice to say that the function is currently being defined, rather than being undefined.
+ typedef int arr[f(T())]; // expected-error {{variable length array}} expected-note {{undefined function 'f<int>'}}
return t;
}
- template<typename T> constexpr T f(T t) {
+ template<typename T> constexpr T f(T t) { // expected-note {{declared here}}
typedef int arr[g(T())]; // expected-error {{zero size array}} expected-note {{instantiation of}}
return t;
}
More information about the cfe-commits
mailing list