r359012 - [APSInt][OpenMP] Fix isNegative, etc. for unsigned types

Joel E. Denny via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 23 10:04:16 PDT 2019


Author: jdenny
Date: Tue Apr 23 10:04:15 2019
New Revision: 359012

URL: http://llvm.org/viewvc/llvm-project?rev=359012&view=rev
Log:
[APSInt][OpenMP] Fix isNegative, etc. for unsigned types

Without this patch, APSInt inherits APInt::isNegative, which merely
checks the sign bit without regard to whether the type is actually
signed.  isNonNegative and isStrictlyPositive call isNegative and so
are also affected.

This patch adjusts APSInt to override isNegative, isNonNegative, and
isStrictlyPositive with implementations that consider whether the type
is signed.

A large set of Clang OpenMP tests are affected.  Without this patch,
these tests assume that `true` is not a valid argument for clauses
like `collapse`.  Indeed, `true` fails APInt::isStrictlyPositive but
not APSInt::isStrictlyPositive.  This patch adjusts those tests to
assume `true` should be accepted.

This patch also adds tests revealing various other similar fixes due
to APSInt::isNegative calls in Clang's ExprConstant.cpp and
SemaExpr.cpp: `++` and `--` overflow in `constexpr`, evaluated object
size based on `alloc_size`, `<<` and `>>` shift count validation, and
OpenMP array section validation.

Reviewed By: lebedev.ri, ABataev, hfinkel

Differential Revision: https://reviews.llvm.org/D59712

Added:
    cfe/trunk/test/SemaCXX/constexpr-unsigned-high-bit.cpp
Modified:
    cfe/trunk/test/CodeGen/alloc-size.c
    cfe/trunk/test/OpenMP/distribute_collapse_messages.cpp
    cfe/trunk/test/OpenMP/distribute_parallel_for_collapse_messages.cpp
    cfe/trunk/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/distribute_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/distribute_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/distribute_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/for_collapse_messages.cpp
    cfe/trunk/test/OpenMP/for_ordered_clause.cpp
    cfe/trunk/test/OpenMP/for_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/for_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/for_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/parallel_for_collapse_messages.cpp
    cfe/trunk/test/OpenMP/parallel_for_ordered_messages.cpp
    cfe/trunk/test/OpenMP/parallel_for_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/parallel_for_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/target_map_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_map_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_ordered_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_simd_map_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/target_parallel_map_messages.cpp
    cfe/trunk/test/OpenMP/target_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/target_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_map_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_simd_map_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/target_teams_map_messages.cpp
    cfe/trunk/test/OpenMP/taskloop_collapse_messages.cpp
    cfe/trunk/test/OpenMP/taskloop_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/taskloop_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/taskloop_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_collapse_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_simd_collapse_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
    cfe/trunk/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
    cfe/trunk/test/Sema/shift.c

Modified: cfe/trunk/test/CodeGen/alloc-size.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/alloc-size.c?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/alloc-size.c (original)
+++ cfe/trunk/test/CodeGen/alloc-size.c Tue Apr 23 10:04:15 2019
@@ -357,3 +357,12 @@ void test12() {
   // CHECK: store i32 -1
   gi = OBJECT_SIZE_BUILTIN(my_signed_calloc(-2, 1), 0);
 }
+
+void *alloc_uchar(unsigned char) __attribute__((alloc_size(1)));
+
+// CHECK-LABEL: @test13
+void test13() {
+  // If 128 were incorrectly seen as negative, the result would become -1.
+  // CHECK: store i32 128,
+  gi = OBJECT_SIZE_BUILTIN(alloc_uchar(128), 0);
+}

Modified: cfe/trunk/test/OpenMP/distribute_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -42,7 +42,7 @@ T tmain(T argc, S **argv) { //expected-n
   // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +3 2 {{directive '#pragma omp distribute' cannot contain more than one 'collapse' clause}}
-  // expected-error at +2 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
   #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];
@@ -85,7 +85,7 @@ int main(int argc, char **argv) {
 #endif
   // expected-error at +3 {{expression is not an integral constant expression}}
   // expected-error at +2 2 {{directive '#pragma omp distribute' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp distribute collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/distribute_parallel_for_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_parallel_for_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_parallel_for_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_parallel_for_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-n
 #pragma omp distribute parallel for collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
   // expected-note at +6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +4 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'collapse' clause}}
-  // expected-error at +3 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +3 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #pragma omp target
 #pragma omp teams
 #pragma omp distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5) 

Modified: cfe/trunk/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-n
 #pragma omp distribute parallel for simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
   // expected-note at +6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +4 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +3 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +3 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #pragma omp target
 #pragma omp teams
 #pragma omp distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5) 

Modified: cfe/trunk/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -63,11 +63,14 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -144,11 +147,14 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -66,11 +66,14 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute parallel for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) // expected-error 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'simdlen' clause}} expected-error 2 {{argument to 'simdlen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -148,11 +151,14 @@ int main(int argc, char **argv) {
 
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute parallel for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) // expected-error {{expression is not an integral constant expression}} expected-error 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'simdlen' clause}} expected-error 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+// expected-error at +3 {{expression is not an 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)
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i-4];
 

Modified: cfe/trunk/test/OpenMP/distribute_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-n
 #pragma omp distribute simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -124,7 +124,7 @@ int main(int argc, char **argv) {
   // expected-note at +6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +4 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +3 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +3 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #pragma omp target
 #pragma omp teams
 #pragma omp distribute simd collapse (foobool(argc)), collapse (true), collapse (-5) 

Modified: cfe/trunk/test/OpenMP/distribute_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -63,11 +63,14 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -144,11 +147,14 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/distribute_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/distribute_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/distribute_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/distribute_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -63,11 +63,14 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -144,11 +147,14 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +7 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
 #pragma omp teams
-#pragma omp parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/for_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/for_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/for_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp for collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp for' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp for collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp for collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/for_ordered_clause.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_ordered_clause.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/for_ordered_clause.cpp (original)
+++ cfe/trunk/test/OpenMP/for_ordered_clause.cpp Tue Apr 23 10:04:15 2019
@@ -47,7 +47,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-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 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// 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}}
 #if __cplusplus >= 201103L
 // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -113,7 +113,7 @@ int main(int argc, char **argv) {
 // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 // expected-error at +2 2 {{directive '#pragma omp for' cannot contain more than one 'ordered' clause}}
-// expected-error at +1 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// expected-error at +1 {{argument to 'ordered' clause must be a strictly positive integer value}}
 #pragma omp for ordered(foobool(argc)), ordered(true), ordered(-5)
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i - 4];

Modified: cfe/trunk/test/OpenMP/for_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/for_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/for_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp for simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp for simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp for simd collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/for_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/for_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/for_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp for simd safelen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp for simd' cannot contain more than one 'safelen' clause}}
-  // expected-error at +1 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'safelen' clause must be a strictly positive integer value}}
   #pragma omp 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];
   #pragma omp for simd safelen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/for_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/for_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/for_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp for simd simdlen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp for simd' cannot contain more than one 'simdlen' clause}}
-  // expected-error at +1 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
   #pragma omp for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp for simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/parallel_for_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_for_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/parallel_for_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/parallel_for_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp parallel for collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4{{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp parallel for' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp parallel for collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp parallel for collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/parallel_for_ordered_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_for_ordered_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/parallel_for_ordered_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/parallel_for_ordered_messages.cpp Tue Apr 23 10:04:15 2019
@@ -46,7 +46,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-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 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// 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}}
 #if __cplusplus >= 201103L
 // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -104,7 +104,7 @@ int main(int argc, char **argv) {
 // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 // expected-error at +2 2 {{directive '#pragma omp parallel for' cannot contain more than one 'ordered' clause}}
-// expected-error at +1 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// expected-error at +1 {{argument to 'ordered' clause must be a strictly positive integer value}}
 #pragma omp parallel for ordered(foobool(argc)), ordered(true), ordered(-5)
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i - 4];

Modified: cfe/trunk/test/OpenMP/parallel_for_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_for_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/parallel_for_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/parallel_for_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp parallel for simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp parallel for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/parallel_for_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_for_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/parallel_for_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/parallel_for_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp parallel for simd safelen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}}
-  // expected-error at +1 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'safelen' clause must be a strictly positive integer value}}
   #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];
   #pragma omp parallel for simd safelen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_for_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/parallel_for_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/parallel_for_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp parallel for simd simdlen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'simdlen' clause}}
-  // expected-error at +1 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
   #pragma omp parallel for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp parallel for simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp simd collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp simd collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp simd safelen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp simd' cannot contain more than one 'safelen' clause}}
-  // expected-error at +1 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'safelen' clause must be a strictly positive integer value}}
   #pragma omp 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];
   #pragma omp simd safelen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp simd simdlen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp simd' cannot contain more than one 'simdlen' clause}}
-  // expected-error at +1 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
   #pragma omp simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/target_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -73,6 +73,8 @@ struct SA {
     {}
     #pragma omp target map(b[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
     {}
+    #pragma omp target map(b[true:true])
+    {}
 
     #pragma omp target map(: c,f) // expected-error {{missing map type}}
     {}

Modified: cfe/trunk/test/OpenMP/target_parallel_for_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp target parallel for collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
   #pragma omp target parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
 #if __cplusplus >= 201103L
@@ -82,7 +82,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 at +3 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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) 
 #if __cplusplus >= 201103L
 // expected-note at -2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}

Modified: cfe/trunk/test/OpenMP/target_parallel_for_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target parallel for map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for map(tofrom: t[:I])
@@ -206,6 +208,8 @@ int main(int argc, char **argv) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target parallel for map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for map(to: x)

Modified: cfe/trunk/test/OpenMP/target_parallel_for_ordered_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_ordered_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_ordered_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_ordered_messages.cpp Tue Apr 23 10:04:15 2019
@@ -49,7 +49,7 @@ T tmain(T argc, S **argv) {
 // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 // expected-error at +3 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'ordered' clause}}
-// expected-error at +2 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target parallel for ordered(foobool(argc)), ordered(true), ordered(-5)
   for (int i = ST; i < N; i++)
@@ -103,7 +103,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +3 {{expression is not an 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 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// 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)
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i - 4];

Modified: cfe/trunk/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -43,7 +43,7 @@ T tmain(T argc, S **argv) { //expected-n
   // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +3 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +2 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
   #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];
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
 #endif
   // expected-error at +3 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp target parallel for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/target_parallel_for_simd_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_simd_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_simd_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_simd_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for simd map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target parallel for simd map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for simd map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for simd map(tofrom: t[:I])
@@ -206,6 +208,8 @@ int main(int argc, char **argv) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target parallel map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for simd map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target parallel for simd map(to: x)

Modified: cfe/trunk/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp Tue Apr 23 10:04:15 2019
@@ -47,7 +47,7 @@ T tmain(T argc, S **argv) {
 #pragma omp target parallel for simd ordered((ST > 0) ? 1 + ST : 2)
   for (int i = ST; i < N; i++)
     argv[0][i] = argv[0][i] - argv[0][i - ST];
-// expected-error at +3 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// expected-error at +3 {{argument to 'ordered' clause must be a strictly positive integer value}}
 // expected-error at +2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'ordered' clause}}
 // expected-error at +1 {{'ordered' clause with a parameter can not be specified in '#pragma omp target parallel for simd' directive}}
 #pragma omp target parallel for simd ordered(foobool(argc)), ordered(true), ordered(-5)
@@ -105,7 +105,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +3 {{expression is not an 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 2 {{argument to 'ordered' clause must be a strictly positive integer value}}
+// 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)
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i - 4];

Modified: cfe/trunk/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp target parallel for simd safelen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'safelen' clause}}
-  // expected-error at +1 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'safelen' clause must be a strictly positive integer value}}
   #pragma omp target 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];
   #pragma omp target parallel for simd safelen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -46,7 +46,7 @@ T tmain(T argc, S **argv) { //expected-n
   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 'simdlen' clause}}
-  // expected-error at +5 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 // expected-error at +2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'simdlen' clause}}
-// expected-error at +1 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+// expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
 #pragma omp target parallel for simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
 

Modified: cfe/trunk/test/OpenMP/target_parallel_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_parallel_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_parallel_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_parallel_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   foo();
 #pragma omp target parallel map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   foo();
+#pragma omp target parallel map(l[true:true])
+  foo();
 #pragma omp target parallel map(x)
   foo();
 #pragma omp target parallel map(tofrom: t[:I])
@@ -205,6 +207,8 @@ int main(int argc, char **argv) {
   foo();
 #pragma omp target parallel map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   foo();
+#pragma omp target parallel map(l[true:true])
+  foo();
 #pragma omp target parallel map(x)
   foo();
 #pragma omp target parallel map(to: x)

Modified: cfe/trunk/test/OpenMP/target_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -41,7 +41,7 @@ T tmain(T argc, S **argv) { //expected-n
   // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +3 2 {{directive '#pragma omp target simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +2 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
   #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];
@@ -82,7 +82,7 @@ int main(int argc, char **argv) {
 #endif
   // expected-error at +3 {{expression is not an integral constant expression}}
   // expected-error at +2 2 {{directive '#pragma omp target simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp target simd collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/target_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp target simd safelen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp target simd' cannot contain more than one 'safelen' clause}}
-  // expected-error at +1 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'safelen' clause must be a strictly positive integer value}}
   #pragma omp target 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];
   #pragma omp target simd safelen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/target_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -46,7 +46,7 @@ T tmain(T argc, S **argv) { //expected-n
   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 'simdlen' clause}}
-  // expected-error at +5 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 // expected-error at +2 2 {{directive '#pragma omp target simd' cannot contain more than one 'simdlen' clause}}
-// expected-error at +1 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+// expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
 #pragma omp target simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
 

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,7 +56,7 @@ T tmain(T argc, S **argv) { //expected-n
 // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 // expected-error at +3 2 {{directive '#pragma omp target teams distribute' cannot contain more than one 'collapse' clause}}
-// expected-error at +2 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target teams distribute collapse (foobool(argc)), collapse (true), collapse (-5)
   for (int i = ST; i < N; i++)
@@ -122,7 +122,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +3 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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) 
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i-4];

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute map(tofrom: t[:I])
@@ -206,6 +208,8 @@ int main(int argc, char **argv) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute map(to: x)

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,7 +56,7 @@ T tmain(T argc, S **argv) { //expected-n
 // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used}}
 #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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target teams distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
   for (int i = ST; i < N; i++)
@@ -121,7 +121,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +3 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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) 
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i-4];

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute parallel for map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for map(tofrom: t[:I])
@@ -206,6 +208,8 @@ int main(int argc, char **argv) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute parallel for map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for map(to: x)

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,7 +56,7 @@ T tmain(T argc, S **argv) { //expected-n
 // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used}}
 #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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target teams distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
   for (int i = ST; i < N; i++)
@@ -121,7 +121,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +3 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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) 
   for (int i = 4; i < 12; i++)
     argv[0][i] = argv[0][i] - argv[0][i-4];

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for simd map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute parallel for simd map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for simd map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for simd map(tofrom: t[:I])
@@ -206,6 +208,8 @@ int main(int argc, char **argv) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for simd map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute parallel for simd map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for simd map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute parallel for simd map(to: x)

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -49,9 +49,12 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -108,9 +111,12 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -49,9 +49,12 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -108,9 +111,12 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -53,7 +53,7 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp target teams distribute simd', but found only 1}}
 
 // expected-error at +6 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'collapse' clause}}
-// expected-error at +5 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #if __cplusplus >= 201103L
 // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -118,7 +118,7 @@ int main(int argc, char **argv) {
 
 // expected-error at +6 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// expected-error at +4 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #if __cplusplus >= 201103L
 // expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_simd_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_simd_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_simd_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_simd_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -86,6 +86,8 @@ T tmain(T argc) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute simd map(l[:-1]) // expected-error 2 {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute simd map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute simd map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute simd map(tofrom: t[:I])
@@ -206,6 +208,8 @@ int main(int argc, char **argv) {
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute simd map(l[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
   for (i = 0; i < argc; ++i) foo();
+#pragma omp target teams distribute simd map(l[true:true])
+  for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute simd map(x)
   for (i = 0; i < argc; ++i) foo();
 #pragma omp target teams distribute simd map(to: x)

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -49,9 +49,12 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -108,9 +111,12 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -49,9 +49,12 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -108,9 +111,12 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
-#pragma omp target teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/target_teams_map_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_teams_map_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_teams_map_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_teams_map_messages.cpp Tue Apr 23 10:04:15 2019
@@ -57,6 +57,8 @@ struct SA {
     {}
     #pragma omp target teams map(b[:-1]) // expected-error {{section length is evaluated to a negative value -1}}
     {}
+    #pragma omp target teams map(b[true:true])
+    {}
 
     #pragma omp target teams map(always, tofrom: c,f)
     {}

Modified: cfe/trunk/test/OpenMP/taskloop_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskloop_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/taskloop_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/taskloop_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp taskloop collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp taskloop' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp taskloop collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp taskloop collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/taskloop_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskloop_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/taskloop_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/taskloop_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp taskloop simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
   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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'collapse' clause}}
-  // expected-error at +1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'collapse' clause must be a strictly positive integer value}}
   #pragma omp taskloop simd collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp taskloop simd collapse (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/taskloop_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskloop_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/taskloop_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/taskloop_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp taskloop simd safelen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'safelen' clause}}
-  // expected-error at +1 2 {{argument to 'safelen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'safelen' clause must be a strictly positive integer value}}
   #pragma omp taskloop 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];
   #pragma omp taskloop simd safelen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/taskloop_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskloop_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/taskloop_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/taskloop_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -39,7 +39,7 @@ T tmain(T argc, S **argv) { //expected-n
   #pragma omp taskloop simd simdlen ((ST > 0) ? 1 + ST : 2)
   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 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // 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}}
 #if __cplusplus >= 201103L
   // expected-note at +2 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
   // expected-note at +4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
   // expected-error at +2 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'simdlen' clause}}
-  // expected-error at +1 2 {{argument to 'simdlen' clause must be a strictly positive integer value}}
+  // expected-error at +1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
   #pragma omp taskloop simd simdlen (foobool(argc)), simdlen (true), simdlen (-5) 
   for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
   #pragma omp taskloop simd simdlen (S1) // expected-error {{'S1' does not refer to a value}}

Modified: cfe/trunk/test/OpenMP/teams_distribute_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-n
 // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used}}
 #endif
 // expected-error at +4 2 {{directive '#pragma omp teams distribute' cannot contain more than one 'collapse' clause}}
-// expected-error at +3 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target
 #pragma omp teams distribute collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -140,7 +140,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +4 {{expression is not an integral constant expression}}
 // expected-error at +3 2 {{directive '#pragma omp teams distribute' cannot contain more than one 'collapse' clause}}
-// expected-error at +2 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #pragma omp target
 #pragma omp teams distribute collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++)

Modified: cfe/trunk/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-n
 // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used}}
 #endif
 // expected-error at +4 2 {{directive '#pragma omp teams distribute parallel for' cannot contain more than one 'collapse' clause}}
-// expected-error at +3 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target
 #pragma omp teams distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -139,7 +139,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +4 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #pragma omp target
 #pragma omp teams distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++)

Modified: cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -63,7 +63,7 @@ T tmain(T argc, S **argv) { //expected-n
 // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used}}
 #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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #pragma omp target
 #pragma omp teams distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -139,7 +139,7 @@ int main(int argc, char **argv) {
 #endif
 // expected-error at +4 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// expected-error at +2 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #pragma omp target
 #pragma omp teams distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5) 
   for (int i = 4; i < 12; i++)

Modified: cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,10 +56,13 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -126,10 +129,13 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,10 +56,13 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -126,10 +129,13 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute parallel for simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/teams_distribute_simd_collapse_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_simd_collapse_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_simd_collapse_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_simd_collapse_messages.cpp Tue Apr 23 10:04:15 2019
@@ -60,7 +60,7 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp teams distribute simd', but found only 1}}
 
 // expected-error at +7 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'collapse' clause}}
-// expected-error at +6 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// 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}}
 #if __cplusplus >= 201103L
 // expected-note at +3 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
@@ -136,7 +136,7 @@ int main(int argc, char **argv) {
 
 // expected-error at +7 {{expression is not an 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 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
+// expected-error at +5 {{argument to 'collapse' clause must be a strictly positive integer value}}
 #if __cplusplus >= 201103L
 // expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif

Modified: cfe/trunk/test/OpenMP/teams_distribute_simd_safelen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_simd_safelen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_simd_safelen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_simd_safelen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,10 +56,13 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -126,10 +129,13 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp Tue Apr 23 10:04:15 2019
@@ -56,10 +56,13 @@ T tmain(T argc, S **argv) { //expected-n
     argv[0][i] = argv[0][i] - argv[0][i-ST];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{expression is not an integral constant expression}}
+// 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}}
+#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];
 
@@ -126,10 +129,13 @@ int main(int argc, char **argv) {
     argv[0][i] = argv[0][i] - argv[0][i-4];
 
 #if __cplusplus >= 201103L
-  // expected-note at +3 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
+  // expected-note at +6 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
 #endif
 #pragma omp target
-#pragma omp teams distribute simd safelen (foobool(argc)), safelen (true), safelen (-5) // expected-error 2 {{argument to 'safelen' clause must be a strictly positive integer value}} expected-error 2 {{directive '#pragma omp teams distribute simd' cannot contain more than one 'safelen' clause}} expected-error {{expression is not an integral constant expression}}
+// 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}}
+#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];
 

Modified: cfe/trunk/test/Sema/shift.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/shift.c?rev=359012&r1=359011&r2=359012&view=diff
==============================================================================
--- cfe/trunk/test/Sema/shift.c (original)
+++ cfe/trunk/test/Sema/shift.c Tue Apr 23 10:04:15 2019
@@ -20,6 +20,9 @@ void test() {
   c = 1 >> -0;
   c = 1 << -1; // expected-warning {{shift count is negative}}
   c = 1 >> -1; // expected-warning {{shift count is negative}}
+  c = 1 << (unsigned)-1; // expected-warning {{shift count >= width of type}}
+                         // expected-warning at -1 {{implicit conversion}}
+  c = 1 >> (unsigned)-1; // expected-warning {{shift count >= width of type}}
   c = 1 << c;
   c <<= 0;
   c >>= 0;

Added: cfe/trunk/test/SemaCXX/constexpr-unsigned-high-bit.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/constexpr-unsigned-high-bit.cpp?rev=359012&view=auto
==============================================================================
--- cfe/trunk/test/SemaCXX/constexpr-unsigned-high-bit.cpp (added)
+++ cfe/trunk/test/SemaCXX/constexpr-unsigned-high-bit.cpp Tue Apr 23 10:04:15 2019
@@ -0,0 +1,15 @@
+// RUN: %clang_cc1 -std=c++14 -fsyntax-only %s
+
+#include <limits.h>
+
+constexpr unsigned inc() {
+  unsigned i = INT_MAX;
+  ++i; // should not warn value is outside range
+  return i;
+}
+
+constexpr unsigned dec() {
+  unsigned i = INT_MIN;
+  --i; // should not warn value is outside range
+  return i;
+}




More information about the cfe-commits mailing list