diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -323,6 +323,9 @@ member pointer as an invalid expression. - Fix crash when member function contains invalid default argument. (`#62122 `_) +- Print diagnostic warning about precedence when integer expression is used + without parentheses in an conditional operator expression + (`#61943 `_) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -9238,7 +9238,8 @@ // Built-in binary operator. if (BinaryOperator *OP = dyn_cast(E)) { - if (IsArithmeticOp(OP->getOpcode())) { + if (IsArithmeticOp(OP->getOpcode()) || + BinaryOperator::isComparisonOp(OP->getOpcode())) { *Opcode = OP->getOpcode(); *RHSExprs = OP->getRHS(); return true; @@ -9282,6 +9283,8 @@ return OP->getOpcode() == UO_LNot; if (E->getType()->isPointerType()) return true; + if (E->getType()->isIntegerType()) + return true; // FIXME: What about overloaded operator calls returning "unspecified boolean // type"s (commonly pointer-to-members)? diff --git a/clang/test/AST/Interp/constexpr-nqueens.cpp b/clang/test/AST/Interp/constexpr-nqueens.cpp --- a/clang/test/AST/Interp/constexpr-nqueens.cpp +++ b/clang/test/AST/Interp/constexpr-nqueens.cpp @@ -27,10 +27,10 @@ return okRecurse(Row, Col, 0); } constexpr bool okRecurse(int Row, int Col, int CheckCol) const { - return Col == CheckCol ? true : - getQueenRow(CheckCol) == Row ? false : - getQueenRow(CheckCol) == Row + (Col - CheckCol) ? false : - getQueenRow(CheckCol) == Row + (CheckCol - Col) ? false : + return (Col == CheckCol) ? true : + (getQueenRow(CheckCol) == Row) ? false : + ((getQueenRow(CheckCol) == Row) + (Col - CheckCol)) ? false : + ((getQueenRow(CheckCol) == Row) + (CheckCol - Col)) ? false : okRecurse(Row, Col, CheckCol + 1); } constexpr bool at(int Row, int Col) const { @@ -46,7 +46,7 @@ return Try.Failed ? buildBoardScan(N, Col, Row, B) : Try; } constexpr Board buildBoardScan(int N, int Col, int Row, const Board &B) { - return Row == N ? Board(0, true) : + return (Row == N) ? Board(0, true) : B.ok(Row, Col) ? tryBoard(buildBoardRecurse(N, Col + 1, B.addQueen(Row, Col)), // ref-note {{in call to '&Board()->addQueen(0, 0)}} \ // expected-note {{in call to '&Board()->addQueen(0, 0)}} @@ -54,7 +54,7 @@ buildBoardScan(N, Col, Row + 1, B); } constexpr Board buildBoardRecurse(int N, int Col, const Board &B) { - return Col == N ? B : buildBoardScan(N, Col, 0, B); // ref-note {{in call to 'buildBoardScan(8, 0, 0, Board())'}} \ + return (Col == N) ? B : buildBoardScan(N, Col, 0, B); // ref-note {{in call to 'buildBoardScan(8, 0, 0, Board())'}} \ // expected-note {{in call to 'buildBoardScan(8, 0, 0, Board())'}} } diff --git a/clang/test/AST/Interp/literals.cpp b/clang/test/AST/Interp/literals.cpp --- a/clang/test/AST/Interp/literals.cpp +++ b/clang/test/AST/Interp/literals.cpp @@ -229,7 +229,7 @@ namespace cond { constexpr bool isEven(int n) { - return n % 2 == 0 ? true : false; + return (n % 2 == 0) ? true : false; } static_assert(isEven(2), ""); static_assert(!isEven(3), ""); @@ -247,9 +247,9 @@ #if __cplusplus >= 201402L constexpr int N = 20; constexpr int foo() { - int m = N > 0 ? 5 : 10; + int m = (N > 0) ? 5 : 10; - return m == 5 ? isEven(m) : true; + return (m == 5) ? isEven(m) : true; } static_assert(foo() == false, ""); diff --git a/clang/test/Analysis/copypaste/macro-complexity.cpp b/clang/test/Analysis/copypaste/macro-complexity.cpp --- a/clang/test/Analysis/copypaste/macro-complexity.cpp +++ b/clang/test/Analysis/copypaste/macro-complexity.cpp @@ -5,18 +5,18 @@ // influence the complexity. See the CloneSignature class in CloneDetection.h // for more information about complexity values of clones. -#define MACRO_FOO(a, b) a > b ? -a * a : -b * b; +#define MACRO_FOO(a, b) ((a > b) ? -a * a : -b * b); // First, manually apply MACRO_FOO and see if the code gets detected as a clone. // This confirms that with the current configuration the macro body would be // considered large enough to pass the MinimumCloneComplexity constraint. int manualMacro(int a, int b) { // expected-warning{{Duplicate code detected}} - return a > b ? -a * a : -b * b; + return (a > b) ? -a * a : -b * b; } int manualMacroClone(int a, int b) { // expected-note{{Similar code here}} - return a > b ? -a * a : -b * b; + return (a > b) ? -a * a : -b * b; } // Now we actually use the macro to generate the same AST as above. They diff --git a/clang/test/Analysis/cxx-uninitialized-object-unguarded-access.cpp b/clang/test/Analysis/cxx-uninitialized-object-unguarded-access.cpp --- a/clang/test/Analysis/cxx-uninitialized-object-unguarded-access.cpp +++ b/clang/test/Analysis/cxx-uninitialized-object-unguarded-access.cpp @@ -424,11 +424,11 @@ } int operator-() { - return K == Kind::A ? Area : -1; + return (K == Kind::A) ? Area : -1; } int operator+() { - return K == Kind::V ? Volume : -1; + return (K == Kind::V) ? Volume : -1; } }; diff --git a/clang/test/Analysis/malloc-overflow.c b/clang/test/Analysis/malloc-overflow.c --- a/clang/test/Analysis/malloc-overflow.c +++ b/clang/test/Analysis/malloc-overflow.c @@ -86,7 +86,7 @@ void * f12(int n) { - n = (n > 10 ? 10 : n); + n = ((n > 10) ? 10 : n); int * x = malloc(n * sizeof(int)); // no-warning for (int i = 0; i < n; i++) x[i] = i; diff --git a/clang/test/Analysis/misc-ps.m b/clang/test/Analysis/misc-ps.m --- a/clang/test/Analysis/misc-ps.m +++ b/clang/test/Analysis/misc-ps.m @@ -852,7 +852,7 @@ int rdar_7593875_aux(int x); int rdar_7593875(int n) { - int z[n > 10 ? 10 : n]; // VLA. + int z[(n > 10) ? 10 : n]; // VLA. int v; v = rdar_7593875_aux(sizeof(z)); // Previously we got a false positive about 'v' being uninitialized. diff --git a/clang/test/Analysis/nullability.mm b/clang/test/Analysis/nullability.mm --- a/clang/test/Analysis/nullability.mm +++ b/clang/test/Analysis/nullability.mm @@ -604,7 +604,7 @@ } - (id _Nonnull)methodReturningIvarInImplementation; { - return _internal == 0 ? nil : _internal->_someIvar; // no-warning + return (_internal == 0) ? nil : _internal->_someIvar; // no-warning } -(id _Nonnull)methodWithNilledOutInternal { diff --git a/clang/test/Analysis/runtime-regression.c b/clang/test/Analysis/runtime-regression.c --- a/clang/test/Analysis/runtime-regression.c +++ b/clang/test/Analysis/runtime-regression.c @@ -23,14 +23,14 @@ for (int y = starty; y < endy; y++) { - int lower_y = y - radius < 0 ? 0 : y - radius; - int higher_y = y + radius + 1 > height ? height : y + radius + 1; + int lower_y = (y - radius < 0) ? 0 : y - radius; + int higher_y = (y + radius + 1 > height) ? height : y + radius + 1; int dist_y = higher_y - lower_y; for (int x = 0; x < width; x++) { - int lower_x = x - radius < 0 ? 0 : x - radius; - int higher_x = x + radius + 1 > width ? width : x + radius + 1; + int lower_x = (x - radius < 0) ? 0 : x - radius; + int higher_x = (x + radius + 1 > width) ? width : x + radius + 1; int count = dist_y * (higher_x - lower_x); // The below hunk caused significant regression in run-time. diff --git a/clang/test/Analysis/uninit-vals.c b/clang/test/Analysis/uninit-vals.c --- a/clang/test/Analysis/uninit-vals.c +++ b/clang/test/Analysis/uninit-vals.c @@ -32,7 +32,7 @@ int f2_b(void) { int x; // expected-note{{'x' declared without an initial value}} - return ((1+x)+2+((x))) + 1 ? 1 : 2; // expected-warning{{The right operand of '+' is a garbage value}} + return (((1+x)+2+((x))) + 1) ? 1 : 2; // expected-warning{{The right operand of '+' is a garbage value}} // expected-note@-1{{The right operand of '+' is a garbage value}} } diff --git a/clang/test/Analysis/use-after-move.cpp b/clang/test/Analysis/use-after-move.cpp --- a/clang/test/Analysis/use-after-move.cpp +++ b/clang/test/Analysis/use-after-move.cpp @@ -562,14 +562,14 @@ // Same thing, but with a ternary operator. { A a, b; - i > 0 ? (void)(b = std::move(a)) : a.bar(); // no-warning + (i > 0) ? (void)(b = std::move(a)) : a.bar(); // no-warning // peaceful-note@-1 {{'i' is > 0}} // peaceful-note@-2 {{'?' condition is true}} } // A variation on the theme above. { A a; - a.foo() > 0 ? a.foo() : A(std::move(a)).foo(); + (a.foo() > 0) ? a.foo() : A(std::move(a)).foo(); #ifdef DFS // peaceful-note@-2 {{Assuming the condition is false}} // peaceful-note@-3 {{'?' condition is false}} diff --git a/clang/test/CXX/temp/temp.decls/temp.variadic/partial-ordering.cpp b/clang/test/CXX/temp/temp.decls/temp.variadic/partial-ordering.cpp --- a/clang/test/CXX/temp/temp.decls/temp.variadic/partial-ordering.cpp +++ b/clang/test/CXX/temp/temp.decls/temp.variadic/partial-ordering.cpp @@ -24,11 +24,11 @@ static const unsigned value = 3; }; -int check0[X1>::value == 0? 1 : -1]; -int check1[X1>::value == 2? 1 : -1]; -int check2[X1>::value == 1? 1 : -1]; -int check3[X1>::value == 2? 1 : -1]; -int check4[X1>::value == 3? 1 : -1]; +int check0[(X1>::value == 0) ? 1 : -1]; +int check1[(X1>::value == 2) ? 1 : -1]; +int check2[(X1>::value == 1) ? 1 : -1]; +int check3[(X1>::value == 2) ? 1 : -1]; +int check4[(X1>::value == 3) ? 1 : -1]; // Partial ordering of function templates. template diff --git a/clang/test/Frontend/macros.c b/clang/test/Frontend/macros.c --- a/clang/test/Frontend/macros.c +++ b/clang/test/Frontend/macros.c @@ -1,7 +1,7 @@ // RUN: %clang_cc1 -DA= -DB=1 -verify -fsyntax-only %s // expected-no-diagnostics -int a[(B A) == 1 ? 1 : -1]; +int a[((B A) == 1) ? 1 : -1]; // PR13747 - Don't warn about unused results with statement exprs in macros. diff --git a/clang/test/OpenMP/cancel_if_messages.cpp b/clang/test/OpenMP/cancel_if_messages.cpp --- a/clang/test/OpenMP/cancel_if_messages.cpp +++ b/clang/test/OpenMP/cancel_if_messages.cpp @@ -34,7 +34,7 @@ #pragma omp cancel parallel if () // expected-error {{expected expression}} #pragma omp cancel parallel if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp cancel parallel if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp cancel' are ignored}} - #pragma omp cancel parallel if (argc > 0 ? argv[1] : argv[2] + z) + #pragma omp cancel parallel if ((argc > 0) ? argv[1] : argv[2] + z) #pragma omp cancel parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp cancel' cannot contain more than one 'if' clause}} #pragma omp cancel parallel if (S) // expected-error {{'S' does not refer to a value}} #pragma omp cancel parallel if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -62,7 +62,7 @@ #pragma omp cancel parallel if () // expected-error {{expected expression}} #pragma omp cancel parallel if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp cancel parallel if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp cancel' are ignored}} - #pragma omp cancel parallel if (argc > 0 ? argv[1] : argv[2] - z) + #pragma omp cancel parallel if ((argc > 0) ? argv[1] : argv[2] - z) #pragma omp cancel parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp cancel' cannot contain more than one 'if' clause}} #pragma omp cancel parallel if (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp cancel parallel if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} diff --git a/clang/test/OpenMP/distribute_collapse_messages.cpp b/clang/test/OpenMP/distribute_collapse_messages.cpp --- a/clang/test/OpenMP/distribute_collapse_messages.cpp +++ b/clang/test/OpenMP/distribute_collapse_messages.cpp @@ -72,7 +72,7 @@ #pragma omp distribute collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute', but found only 1}} - #pragma omp distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} + #pragma omp distribute collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/distribute_dist_schedule_messages.cpp b/clang/test/OpenMP/distribute_dist_schedule_messages.cpp --- a/clang/test/OpenMP/distribute_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/distribute_dist_schedule_messages.cpp @@ -29,7 +29,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp distribute dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp distribute' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp distribute dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp distribute dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp distribute dist_schedule (static), dist_schedule (static, 1 + z) // expected-error {{directive '#pragma omp distribute' cannot contain more than one 'dist_schedule' clause}} for (int i = 0; i < 10; ++i) foo(); @@ -54,7 +54,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp distribute dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp distribute' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp distribute dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp distribute dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp distribute dist_schedule (static), dist_schedule (static, 1 -z ) // expected-error {{directive '#pragma omp distribute' cannot contain more than one 'dist_schedule' clause}} for (int i = 0; i < 10; ++i) foo(); diff --git a/clang/test/OpenMP/distribute_firstprivate_messages.cpp b/clang/test/OpenMP/distribute_firstprivate_messages.cpp --- a/clang/test/OpenMP/distribute_firstprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_firstprivate_messages.cpp @@ -83,7 +83,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams - #pragma omp distribute firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp distribute firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp @@ -109,7 +109,7 @@ // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} #pragma omp target #pragma omp teams -#pragma omp distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) +#pragma omp distribute parallel for collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+5 {{integral constant expression}} expected-note@+5 0+{{constant expression}} // expected-error@+4 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/distribute_parallel_for_copyin_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_copyin_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_copyin_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_copyin_messages.cpp @@ -90,7 +90,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target @@ -154,7 +154,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_dist_schedule_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_dist_schedule_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_dist_schedule_messages.cpp @@ -42,7 +42,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp distribute parallel for dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams @@ -87,7 +87,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp distribute parallel for dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp @@ -104,7 +104,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -226,7 +226,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_if_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_if_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_if_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_if_messages.cpp @@ -46,7 +46,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for if (argc > 0 ? argv[1] : argv[2]) +#pragma omp distribute parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams @@ -128,7 +128,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for if (argc > 0 ? argv[1] : argv[2]) +#pragma omp distribute parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_lastprivate_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_lastprivate_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_lastprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_lastprivate_messages.cpp @@ -99,7 +99,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -213,7 +213,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_num_threads_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_num_threads_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_num_threads_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_num_threads_messages.cpp @@ -86,7 +86,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} +#pragma omp distribute parallel for num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_private_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_private_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_private_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_private_messages.cpp @@ -138,7 +138,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -245,7 +245,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_reduction_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_reduction_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_reduction_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_reduction_messages.cpp @@ -339,7 +339,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp distribute parallel for reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_schedule_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_schedule_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_schedule_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_schedule_messages.cpp @@ -126,7 +126,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for schedule (dynamic, foobool(1) > 0 ? 1 : 2 - z) +#pragma omp distribute parallel for schedule (dynamic, (foobool(1) > 0) ? 1 : 2 - z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+4 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'schedule' clause}} // expected-error@+3 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/distribute_parallel_for_shared_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_shared_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_shared_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_shared_messages.cpp @@ -96,7 +96,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for(int k = 0 ; k < n ; k++) { acc++; } @@ -270,7 +270,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for(int k = 0 ; k < n ; k++) { acc++; } diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp @@ -168,7 +168,7 @@ #pragma omp target #pragma omp teams // FIXME: Should argc really be a pointer? -#pragma omp distribute parallel for simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target @@ -272,7 +272,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp @@ -109,7 +109,7 @@ // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) +#pragma omp distribute parallel for simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+5 {{integral constant expression}} expected-note@+5 0+{{constant expression}} // expected-error@+4 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_copyin_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_copyin_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_copyin_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_copyin_messages.cpp @@ -90,7 +90,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target @@ -154,7 +154,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_dist_schedule_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_dist_schedule_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_dist_schedule_messages.cpp @@ -43,7 +43,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp distribute parallel for simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams @@ -88,7 +88,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp distribute parallel for simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp @@ -103,7 +103,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -225,7 +225,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_if_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_if_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_if_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_if_messages.cpp @@ -43,7 +43,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp distribute parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams @@ -125,7 +125,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp distribute parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_messages.cpp @@ -100,7 +100,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -214,7 +214,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_linear_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_linear_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_linear_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_linear_messages.cpp @@ -182,7 +182,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+3 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} @@ -286,7 +286,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+3 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_num_threads_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_num_threads_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_num_threads_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_num_threads_messages.cpp @@ -86,7 +86,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} +#pragma omp distribute parallel for simd num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_private_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_private_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_private_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_private_messages.cpp @@ -138,7 +138,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -245,7 +245,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_reduction_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_reduction_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_reduction_messages.cpp @@ -338,7 +338,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp distribute parallel for simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp @@ -136,7 +136,7 @@ #pragma omp target #pragma omp teams -#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_schedule_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_schedule_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_schedule_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_schedule_messages.cpp @@ -126,7 +126,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd schedule (dynamic, foobool(1) > 0 ? 1 : 2 -z) +#pragma omp distribute parallel for simd schedule (dynamic, (foobool(1) > 0) ? 1 : 2 -z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+4 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'schedule' clause}} // expected-error@+3 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_shared_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_shared_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_shared_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_shared_messages.cpp @@ -96,7 +96,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for(int k = 0 ; k < n ; k++) { acc++; } @@ -270,7 +270,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute parallel for simd shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for(int k = 0 ; k < n ; k++) { acc++; } diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp @@ -137,7 +137,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute parallel for simd simdlen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp distribute parallel for simd simdlen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/distribute_private_messages.cpp b/clang/test/OpenMP/distribute_private_messages.cpp --- a/clang/test/OpenMP/distribute_private_messages.cpp +++ b/clang/test/OpenMP/distribute_private_messages.cpp @@ -62,7 +62,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp distribute private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp distribute private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp distribute private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp distribute private (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/distribute_simd_aligned_messages.cpp b/clang/test/OpenMP/distribute_simd_aligned_messages.cpp --- a/clang/test/OpenMP/distribute_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_aligned_messages.cpp @@ -168,7 +168,7 @@ #pragma omp target #pragma omp teams // FIXME: Should argc really be a pointer? -#pragma omp distribute simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target @@ -272,7 +272,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/distribute_simd_collapse_messages.cpp b/clang/test/OpenMP/distribute_simd_collapse_messages.cpp --- a/clang/test/OpenMP/distribute_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_collapse_messages.cpp @@ -109,7 +109,7 @@ // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} #pragma omp target #pragma omp teams -#pragma omp distribute simd collapse (foobool(1) > 0 ? 1 : 2) +#pragma omp distribute simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+5 {{integral constant expression}} expected-note@+5 0+{{constant expression}} // expected-error@+4 2 {{directive '#pragma omp distribute simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/distribute_simd_dist_schedule_messages.cpp b/clang/test/OpenMP/distribute_simd_dist_schedule_messages.cpp --- a/clang/test/OpenMP/distribute_simd_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_dist_schedule_messages.cpp @@ -50,7 +50,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp distribute simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target @@ -102,7 +102,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp distribute simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_simd_firstprivate_messages.cpp b/clang/test/OpenMP/distribute_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/distribute_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_firstprivate_messages.cpp @@ -96,7 +96,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -218,7 +218,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_simd_if_messages.cpp b/clang/test/OpenMP/distribute_simd_if_messages.cpp --- a/clang/test/OpenMP/distribute_simd_if_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_if_messages.cpp @@ -39,7 +39,7 @@ #pragma omp distribute simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp teams - #pragma omp distribute simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp distribute simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp teams #pragma omp distribute simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp distribute simd' cannot contain more than one 'if' clause}} @@ -96,7 +96,7 @@ #pragma omp distribute simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp teams - #pragma omp distribute simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp distribute simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp teams #pragma omp distribute simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp distribute simd' cannot contain more than one 'if' clause}} diff --git a/clang/test/OpenMP/distribute_simd_lastprivate_messages.cpp b/clang/test/OpenMP/distribute_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/distribute_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_lastprivate_messages.cpp @@ -100,7 +100,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -214,7 +214,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_simd_linear_messages.cpp b/clang/test/OpenMP/distribute_simd_linear_messages.cpp --- a/clang/test/OpenMP/distribute_simd_linear_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_linear_messages.cpp @@ -182,7 +182,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+3 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} @@ -275,7 +275,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+3 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} diff --git a/clang/test/OpenMP/distribute_simd_private_messages.cpp b/clang/test/OpenMP/distribute_simd_private_messages.cpp --- a/clang/test/OpenMP/distribute_simd_private_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_private_messages.cpp @@ -138,7 +138,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -245,7 +245,7 @@ ++k; #pragma omp target #pragma omp teams -#pragma omp distribute simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/distribute_simd_reduction_messages.cpp b/clang/test/OpenMP/distribute_simd_reduction_messages.cpp --- a/clang/test/OpenMP/distribute_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_reduction_messages.cpp @@ -344,7 +344,7 @@ foo(); #pragma omp target #pragma omp teams -#pragma omp distribute simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp distribute simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/distribute_simd_safelen_messages.cpp b/clang/test/OpenMP/distribute_simd_safelen_messages.cpp --- a/clang/test/OpenMP/distribute_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_safelen_messages.cpp @@ -136,7 +136,7 @@ #pragma omp target #pragma omp teams -#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp b/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/distribute_simd_simdlen_messages.cpp @@ -136,7 +136,7 @@ #pragma omp target #pragma omp teams -#pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/for_collapse_messages.cpp b/clang/test/OpenMP/for_collapse_messages.cpp --- a/clang/test/OpenMP/for_collapse_messages.cpp +++ b/clang/test/OpenMP/for_collapse_messages.cpp @@ -77,7 +77,7 @@ #pragma omp for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp for', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp for collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp for collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp for' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/for_firstprivate_messages.cpp b/clang/test/OpenMP/for_firstprivate_messages.cpp --- a/clang/test/OpenMP/for_firstprivate_messages.cpp +++ b/clang/test/OpenMP/for_firstprivate_messages.cpp @@ -89,7 +89,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -195,7 +195,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/for_lastprivate_messages.cpp b/clang/test/OpenMP/for_lastprivate_messages.cpp --- a/clang/test/OpenMP/for_lastprivate_messages.cpp +++ b/clang/test/OpenMP/for_lastprivate_messages.cpp @@ -95,7 +95,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -197,7 +197,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/for_linear_messages.cpp b/clang/test/OpenMP/for_linear_messages.cpp --- a/clang/test/OpenMP/for_linear_messages.cpp +++ b/clang/test/OpenMP/for_linear_messages.cpp @@ -124,7 +124,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp for linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp for linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp for linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -190,7 +190,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp for linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp for linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp for linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for linear (argc) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/for_ordered_clause.cpp b/clang/test/OpenMP/for_ordered_clause.cpp --- a/clang/test/OpenMP/for_ordered_clause.cpp +++ b/clang/test/OpenMP/for_ordered_clause.cpp @@ -97,7 +97,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error {{expected 4 for loops after '#pragma omp for', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} -#pragma omp for ordered(foobool(1) > 0 ? 1 : 2) +#pragma omp for ordered((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/for_private_messages.cpp b/clang/test/OpenMP/for_private_messages.cpp --- a/clang/test/OpenMP/for_private_messages.cpp +++ b/clang/test/OpenMP/for_private_messages.cpp @@ -114,7 +114,7 @@ #pragma omp for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -196,7 +196,7 @@ #pragma omp for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for private(argc) diff --git a/clang/test/OpenMP/for_reduction_messages.cpp b/clang/test/OpenMP/for_reduction_messages.cpp --- a/clang/test/OpenMP/for_reduction_messages.cpp +++ b/clang/test/OpenMP/for_reduction_messages.cpp @@ -302,7 +302,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel -#pragma omp for reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/for_schedule_messages.cpp b/clang/test/OpenMP/for_schedule_messages.cpp --- a/clang/test/OpenMP/for_schedule_messages.cpp +++ b/clang/test/OpenMP/for_schedule_messages.cpp @@ -104,7 +104,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp for schedule (static, 2+2-z)) // expected-warning {{extra tokens at the end of '#pragma omp for' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; - #pragma omp for schedule (dynamic, foobool(1) > 0 ? 1 : 2) + #pragma omp for schedule (dynamic, (foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp for' cannot contain more than one 'schedule' clause}} // expected-error@+1 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/for_simd_aligned_messages.cpp b/clang/test/OpenMP/for_simd_aligned_messages.cpp --- a/clang/test/OpenMP/for_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/for_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp for simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp for simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp for simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp for simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp for simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp for simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp for simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp for simd aligned (argc) diff --git a/clang/test/OpenMP/for_simd_collapse_messages.cpp b/clang/test/OpenMP/for_simd_collapse_messages.cpp --- a/clang/test/OpenMP/for_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/for_simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp for simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp for simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp for simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp for simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp for simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/for_simd_firstprivate_messages.cpp b/clang/test/OpenMP/for_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/for_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/for_simd_firstprivate_messages.cpp @@ -90,7 +90,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -193,7 +193,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/for_simd_if_messages.cpp b/clang/test/OpenMP/for_simd_if_messages.cpp --- a/clang/test/OpenMP/for_simd_if_messages.cpp +++ b/clang/test/OpenMP/for_simd_if_messages.cpp @@ -32,7 +32,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp for simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -72,7 +72,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp for simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/for_simd_lastprivate_messages.cpp b/clang/test/OpenMP/for_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/for_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/for_simd_lastprivate_messages.cpp @@ -95,7 +95,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -194,7 +194,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/for_simd_linear_messages.cpp b/clang/test/OpenMP/for_simd_linear_messages.cpp --- a/clang/test/OpenMP/for_simd_linear_messages.cpp +++ b/clang/test/OpenMP/for_simd_linear_messages.cpp @@ -124,7 +124,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp for simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -189,7 +189,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp for simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for simd linear (argc) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/for_simd_private_messages.cpp b/clang/test/OpenMP/for_simd_private_messages.cpp --- a/clang/test/OpenMP/for_simd_private_messages.cpp +++ b/clang/test/OpenMP/for_simd_private_messages.cpp @@ -114,7 +114,7 @@ #pragma omp for simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -189,7 +189,7 @@ #pragma omp for simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp for simd private(argc) diff --git a/clang/test/OpenMP/for_simd_reduction_messages.cpp b/clang/test/OpenMP/for_simd_reduction_messages.cpp --- a/clang/test/OpenMP/for_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/for_simd_reduction_messages.cpp @@ -293,7 +293,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel -#pragma omp for simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp for simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/for_simd_safelen_messages.cpp b/clang/test/OpenMP/for_simd_safelen_messages.cpp --- a/clang/test/OpenMP/for_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/for_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp for simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp for simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp for simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp for simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/for_simd_schedule_messages.cpp b/clang/test/OpenMP/for_simd_schedule_messages.cpp --- a/clang/test/OpenMP/for_simd_schedule_messages.cpp +++ b/clang/test/OpenMP/for_simd_schedule_messages.cpp @@ -74,7 +74,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp for simd schedule (static, 2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; - #pragma omp for simd schedule (dynamic, foobool(1) > 0 ? 1 : 2 - z) + #pragma omp for simd schedule (dynamic, (foobool(1) > 0) ? 1 : 2 - z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp for simd' cannot contain more than one 'schedule' clause}} // expected-error@+1 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/for_simd_simdlen_messages.cpp b/clang/test/OpenMP/for_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/for_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/for_simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp for simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp for simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp for simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp for simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_collapse_messages.cpp b/clang/test/OpenMP/masked_taskloop_collapse_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_collapse_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp masked taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp masked taskloop', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp masked taskloop collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp masked taskloop collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp masked taskloop' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_final_messages.cpp b/clang/test/OpenMP/masked_taskloop_final_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_final_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp masked taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp masked taskloop final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp masked taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp masked taskloop final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_firstprivate_messages.cpp b/clang/test/OpenMP/masked_taskloop_firstprivate_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_firstprivate_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp masked taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp masked taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/masked_taskloop_grainsize_messages.cpp b/clang/test/OpenMP/masked_taskloop_grainsize_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_grainsize_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp masked taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp masked taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp masked taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp masked taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_in_reduction_messages.cpp b/clang/test/OpenMP/masked_taskloop_in_reduction_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_in_reduction_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_in_reduction_messages.cpp @@ -305,7 +305,7 @@ #pragma omp masked taskloop in_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp masked taskloop in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop in_reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/masked_taskloop_lastprivate_messages.cpp b/clang/test/OpenMP/masked_taskloop_lastprivate_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_lastprivate_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp masked taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp masked taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/masked_taskloop_num_tasks_messages.cpp b/clang/test/OpenMP/masked_taskloop_num_tasks_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_num_tasks_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp masked taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp masked taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp masked taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp masked taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_priority_messages.cpp b/clang/test/OpenMP/masked_taskloop_priority_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_priority_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp masked taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp masked taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp masked taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp masked taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp masked taskloop' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_private_messages.cpp b/clang/test/OpenMP/masked_taskloop_private_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_private_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp masked taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp masked taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp masked taskloop private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp masked taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp masked taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp masked taskloop private(argc) diff --git a/clang/test/OpenMP/masked_taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_aligned_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp masked taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp masked taskloop simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp masked taskloop simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp masked taskloop simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -182,7 +182,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp masked taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp masked taskloop simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp masked taskloop simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp masked taskloop simd aligned (argc) diff --git a/clang/test/OpenMP/masked_taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_collapse_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_collapse_messages.cpp @@ -72,7 +72,7 @@ #pragma omp masked taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp masked taskloop simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp masked taskloop simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp masked taskloop simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_final_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_final_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_final_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp masked taskloop simd final(argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop simd final(argc > 0 ? argv[1] : argv[2]) +#pragma omp masked taskloop simd final((argc > 0) ? argv[1] : argv[2]) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'final' clause}} @@ -69,7 +69,7 @@ #pragma omp masked taskloop simd final(z+argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop simd final(argc > 0 ? argv[1] : argv[2]) +#pragma omp masked taskloop simd final((argc > 0) ? argv[1] : argv[2]) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_firstprivate_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp masked taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -214,7 +214,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp masked taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/masked_taskloop_simd_grainsize_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_grainsize_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_grainsize_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp masked taskloop simd grainsize (z + argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp masked taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'grainsize' clause}} @@ -74,7 +74,7 @@ #pragma omp masked taskloop simd grainsize (argc+z)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp masked taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_in_reduction_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_in_reduction_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_in_reduction_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_in_reduction_messages.cpp @@ -304,7 +304,7 @@ #pragma omp masked taskloop simd in_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop simd in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp masked taskloop simd in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd in_reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_lastprivate_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp masked taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -203,7 +203,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp masked taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/masked_taskloop_simd_linear_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_linear_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_linear_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_linear_messages.cpp @@ -143,7 +143,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (val(argc, // expected-error {{expected expression}} expected-error 2 {{expected ')'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp master taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp master taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -232,7 +232,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp master taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp master taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (argc, z) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/masked_taskloop_simd_num_tasks_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_num_tasks_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_num_tasks_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp masked taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp masked taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'num_tasks' clause}} @@ -72,7 +72,7 @@ #pragma omp masked taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp masked taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_priority_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_priority_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_priority_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp masked taskloop simd priority (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp masked taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'priority' clause}} @@ -69,7 +69,7 @@ #pragma omp masked taskloop simd priority (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp masked taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp masked taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_private_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_private_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_private_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp masked taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp masked taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp masked taskloop simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -207,7 +207,7 @@ #pragma omp masked taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp masked taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp masked taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp masked taskloop simd private(argc, z) diff --git a/clang/test/OpenMP/masked_taskloop_simd_reduction_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_reduction_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_reduction_messages.cpp @@ -274,7 +274,7 @@ #pragma omp masked taskloop simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp masked taskloop simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp masked taskloop simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp masked taskloop simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_safelen_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_safelen_messages.cpp @@ -70,7 +70,7 @@ #pragma omp masked taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp masked taskloop simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp masked taskloop simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/masked_taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/masked_taskloop_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/masked_taskloop_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/masked_taskloop_simd_simdlen_messages.cpp @@ -70,7 +70,7 @@ #pragma omp masked taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp masked taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp masked taskloop simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp masked taskloop simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp masked taskloop simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/master_taskloop_collapse_messages.cpp b/clang/test/OpenMP/master_taskloop_collapse_messages.cpp --- a/clang/test/OpenMP/master_taskloop_collapse_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp master taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp master taskloop', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp master taskloop collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp master taskloop collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp master taskloop' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/master_taskloop_final_messages.cpp b/clang/test/OpenMP/master_taskloop_final_messages.cpp --- a/clang/test/OpenMP/master_taskloop_final_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp master taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp master taskloop final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp master taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp master taskloop final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/master_taskloop_firstprivate_messages.cpp b/clang/test/OpenMP/master_taskloop_firstprivate_messages.cpp --- a/clang/test/OpenMP/master_taskloop_firstprivate_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp master taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp master taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/master_taskloop_grainsize_messages.cpp b/clang/test/OpenMP/master_taskloop_grainsize_messages.cpp --- a/clang/test/OpenMP/master_taskloop_grainsize_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp master taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp master taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp master taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp master taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/master_taskloop_in_reduction_messages.cpp b/clang/test/OpenMP/master_taskloop_in_reduction_messages.cpp --- a/clang/test/OpenMP/master_taskloop_in_reduction_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_in_reduction_messages.cpp @@ -303,7 +303,7 @@ #pragma omp master taskloop in_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp master taskloop in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop in_reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/master_taskloop_lastprivate_messages.cpp b/clang/test/OpenMP/master_taskloop_lastprivate_messages.cpp --- a/clang/test/OpenMP/master_taskloop_lastprivate_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp master taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp master taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/master_taskloop_num_tasks_messages.cpp b/clang/test/OpenMP/master_taskloop_num_tasks_messages.cpp --- a/clang/test/OpenMP/master_taskloop_num_tasks_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp master taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp master taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp master taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp master taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/master_taskloop_priority_messages.cpp b/clang/test/OpenMP/master_taskloop_priority_messages.cpp --- a/clang/test/OpenMP/master_taskloop_priority_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp master taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp master taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp master taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp master taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp master taskloop' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/master_taskloop_private_messages.cpp b/clang/test/OpenMP/master_taskloop_private_messages.cpp --- a/clang/test/OpenMP/master_taskloop_private_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp master taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp master taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp master taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp master taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop private(argc) diff --git a/clang/test/OpenMP/master_taskloop_reduction_messages.cpp b/clang/test/OpenMP/master_taskloop_reduction_messages.cpp --- a/clang/test/OpenMP/master_taskloop_reduction_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp master taskloop reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp master taskloop reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp master taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp master taskloop simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp master taskloop simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp master taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp master taskloop simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp master taskloop simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp master taskloop simd aligned (argc) diff --git a/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp master taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp master taskloop simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp master taskloop simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp master taskloop simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp master taskloop simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/master_taskloop_simd_final_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_final_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_final_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp master taskloop simd final(argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop simd final(argc > 0 ? argv[1] : argv[2]) +#pragma omp master taskloop simd final((argc > 0) ? argv[1] : argv[2]) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp master taskloop simd final(z+argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop simd final(argc > 0 ? argv[1] : argv[2]) +#pragma omp master taskloop simd final((argc > 0) ? argv[1] : argv[2]) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/master_taskloop_simd_firstprivate_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp master taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp master taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/master_taskloop_simd_grainsize_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_grainsize_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_grainsize_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp master taskloop simd grainsize (z + argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp master taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp master taskloop simd grainsize (argc+z)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp master taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/master_taskloop_simd_in_reduction_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_in_reduction_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_in_reduction_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_in_reduction_messages.cpp @@ -303,7 +303,7 @@ #pragma omp master taskloop simd in_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop simd in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp master taskloop simd in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd in_reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/master_taskloop_simd_lastprivate_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp master taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp master taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/master_taskloop_simd_linear_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_linear_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_linear_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_linear_messages.cpp @@ -143,7 +143,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (val(argc, // expected-error {{expected expression}} expected-error 2 {{expected ')'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp master taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp master taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -232,7 +232,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp master taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp master taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd linear (argc, z) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/master_taskloop_simd_num_tasks_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_num_tasks_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_num_tasks_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp master taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp master taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp master taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp master taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/master_taskloop_simd_priority_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_priority_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_priority_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp master taskloop simd priority (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp master taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp master taskloop simd priority (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp master taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp master taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp master taskloop simd' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/master_taskloop_simd_private_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_private_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_private_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp master taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp master taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp master taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp master taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp master taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp master taskloop simd private(argc, z) diff --git a/clang/test/OpenMP/master_taskloop_simd_reduction_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_reduction_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp master taskloop simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp master taskloop simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp master taskloop simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp master taskloop simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp master taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp master taskloop simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp master taskloop simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp master taskloop simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/master_taskloop_simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp master taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp master taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp master taskloop simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp master taskloop simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp master taskloop simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/parallel_copyin_messages.cpp b/clang/test/OpenMP/parallel_copyin_messages.cpp --- a/clang/test/OpenMP/parallel_copyin_messages.cpp +++ b/clang/test/OpenMP/parallel_copyin_messages.cpp @@ -63,7 +63,7 @@ #pragma omp parallel copyin () // expected-error {{expected expression}} #pragma omp parallel copyin (k // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel copyin (h, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} - #pragma omp parallel copyin (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel copyin ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp parallel copyin (l) // expected-error {{'operator=' is a private member of 'S4'}} #pragma omp parallel copyin (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp parallel copyin (argv[1]) // expected-error {{expected variable name}} diff --git a/clang/test/OpenMP/parallel_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_firstprivate_messages.cpp @@ -78,7 +78,7 @@ #pragma omp parallel firstprivate () // expected-error {{expected expression}} #pragma omp parallel firstprivate (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel firstprivate (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} - #pragma omp parallel firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp parallel firstprivate (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} #pragma omp parallel firstprivate (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp parallel firstprivate (a, b, c, d, f) // expected-error {{firstprivate variable with incomplete type 'S1'}} diff --git a/clang/test/OpenMP/parallel_for_collapse_messages.cpp b/clang/test/OpenMP/parallel_for_collapse_messages.cpp --- a/clang/test/OpenMP/parallel_for_collapse_messages.cpp +++ b/clang/test/OpenMP/parallel_for_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp parallel for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel for collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel for collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel for' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/parallel_for_copyin_messages.cpp b/clang/test/OpenMP/parallel_for_copyin_messages.cpp --- a/clang/test/OpenMP/parallel_for_copyin_messages.cpp +++ b/clang/test/OpenMP/parallel_for_copyin_messages.cpp @@ -77,7 +77,7 @@ #pragma omp parallel for copyin(h, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for copyin(l) // expected-error {{'operator=' is a private member of 'S4'}} diff --git a/clang/test/OpenMP/parallel_for_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_for_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_for_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_for_firstprivate_messages.cpp @@ -91,7 +91,7 @@ #pragma omp parallel for firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -176,7 +176,7 @@ #pragma omp parallel for firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for firstprivate(argc) diff --git a/clang/test/OpenMP/parallel_for_if_messages.cpp b/clang/test/OpenMP/parallel_for_if_messages.cpp --- a/clang/test/OpenMP/parallel_for_if_messages.cpp +++ b/clang/test/OpenMP/parallel_for_if_messages.cpp @@ -34,7 +34,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp parallel for if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel for' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -76,7 +76,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp parallel for if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel for' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/parallel_for_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_for_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_for_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_for_lastprivate_messages.cpp @@ -89,7 +89,7 @@ #pragma omp parallel for lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -169,7 +169,7 @@ #pragma omp parallel for lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for lastprivate(argc, z) diff --git a/clang/test/OpenMP/parallel_for_linear_messages.cpp b/clang/test/OpenMP/parallel_for_linear_messages.cpp --- a/clang/test/OpenMP/parallel_for_linear_messages.cpp +++ b/clang/test/OpenMP/parallel_for_linear_messages.cpp @@ -145,7 +145,7 @@ #pragma omp parallel for linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for linear(argc, z : 5) @@ -230,7 +230,7 @@ #pragma omp parallel for linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for linear(argc, z) diff --git a/clang/test/OpenMP/parallel_for_num_threads_messages.cpp b/clang/test/OpenMP/parallel_for_num_threads_messages.cpp --- a/clang/test/OpenMP/parallel_for_num_threads_messages.cpp +++ b/clang/test/OpenMP/parallel_for_num_threads_messages.cpp @@ -52,7 +52,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for num_threads (z-argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp parallel for num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp parallel for num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp parallel for' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/parallel_for_ordered_messages.cpp b/clang/test/OpenMP/parallel_for_ordered_messages.cpp --- a/clang/test/OpenMP/parallel_for_ordered_messages.cpp +++ b/clang/test/OpenMP/parallel_for_ordered_messages.cpp @@ -88,7 +88,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} -#pragma omp parallel for ordered(foobool(1) > 0 ? 1 : 2) +#pragma omp parallel for ordered((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/parallel_for_private_messages.cpp b/clang/test/OpenMP/parallel_for_private_messages.cpp --- a/clang/test/OpenMP/parallel_for_private_messages.cpp +++ b/clang/test/OpenMP/parallel_for_private_messages.cpp @@ -114,7 +114,7 @@ #pragma omp parallel for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -189,7 +189,7 @@ #pragma omp parallel for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for private(argc) diff --git a/clang/test/OpenMP/parallel_for_reduction_messages.cpp b/clang/test/OpenMP/parallel_for_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_for_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_for_reduction_messages.cpp @@ -262,7 +262,7 @@ #pragma omp parallel for reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel for reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel for reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel for reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/parallel_for_schedule_messages.cpp b/clang/test/OpenMP/parallel_for_schedule_messages.cpp --- a/clang/test/OpenMP/parallel_for_schedule_messages.cpp +++ b/clang/test/OpenMP/parallel_for_schedule_messages.cpp @@ -76,7 +76,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp parallel for schedule (static, 2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; - #pragma omp parallel for schedule (dynamic, foobool(1) > 0 ? 1 : 2 - z) + #pragma omp parallel for schedule (dynamic, (foobool(1) > 0) ? 1 : 2 - z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp parallel for' cannot contain more than one 'schedule' clause}} // expected-error@+1 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp parallel for simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp parallel for simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel for simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp parallel for simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel for simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel for simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp parallel for simd aligned (argc) diff --git a/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp parallel for simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel for simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel for simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel for simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/parallel_for_simd_copyin_messages.cpp b/clang/test/OpenMP/parallel_for_simd_copyin_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_copyin_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_copyin_messages.cpp @@ -77,7 +77,7 @@ #pragma omp parallel for simd copyin(h, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for simd copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd copyin(l) // expected-error {{'operator=' is a private member of 'S4'}} diff --git a/clang/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp @@ -91,7 +91,7 @@ #pragma omp parallel for simd firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -178,7 +178,7 @@ #pragma omp parallel for simd firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd firstprivate(argc, z) diff --git a/clang/test/OpenMP/parallel_for_simd_if_messages.cpp b/clang/test/OpenMP/parallel_for_simd_if_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_if_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_if_messages.cpp @@ -31,7 +31,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp parallel for simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -73,7 +73,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp parallel for simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/parallel_for_simd_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_for_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_lastprivate_messages.cpp @@ -88,7 +88,7 @@ #pragma omp parallel for simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -171,7 +171,7 @@ #pragma omp parallel for simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd lastprivate(argc) diff --git a/clang/test/OpenMP/parallel_for_simd_linear_messages.cpp b/clang/test/OpenMP/parallel_for_simd_linear_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_linear_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_linear_messages.cpp @@ -123,7 +123,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -187,7 +187,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd linear (argc, z) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/parallel_for_simd_num_threads_messages.cpp b/clang/test/OpenMP/parallel_for_simd_num_threads_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_num_threads_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_num_threads_messages.cpp @@ -52,7 +52,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd num_threads (argc * z)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp parallel for simd num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp parallel for simd num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for simd num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/parallel_for_simd_private_messages.cpp b/clang/test/OpenMP/parallel_for_simd_private_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_private_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_private_messages.cpp @@ -114,7 +114,7 @@ #pragma omp parallel for simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -189,7 +189,7 @@ #pragma omp parallel for simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for simd private(argc, z) diff --git a/clang/test/OpenMP/parallel_for_simd_reduction_messages.cpp b/clang/test/OpenMP/parallel_for_simd_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_reduction_messages.cpp @@ -254,7 +254,7 @@ #pragma omp parallel for simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel for simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel for simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel for simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp parallel for simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel for simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/parallel_for_simd_schedule_messages.cpp b/clang/test/OpenMP/parallel_for_simd_schedule_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_schedule_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_schedule_messages.cpp @@ -74,7 +74,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp parallel for simd schedule (static, 2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; - #pragma omp parallel for simd schedule (dynamic, foobool(1) > 0 ? 1 : 2) + #pragma omp parallel for simd schedule (dynamic, (foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'schedule' clause}} // expected-error@+1 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp parallel for simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel for simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel for simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel for simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/parallel_if_messages.cpp b/clang/test/OpenMP/parallel_if_messages.cpp --- a/clang/test/OpenMP/parallel_if_messages.cpp +++ b/clang/test/OpenMP/parallel_if_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel if () // expected-error {{expected expression}} #pragma omp parallel if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel' are ignored}} - #pragma omp parallel if (argc > 0 ? argv[1] : argv[2] + z) + #pragma omp parallel if ((argc > 0) ? argv[1] : argv[2] + z) #pragma omp parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel' cannot contain more than one 'if' clause}} #pragma omp parallel if (S) // expected-error {{'S' does not refer to a value}} #pragma omp parallel if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -54,7 +54,7 @@ #pragma omp parallel if () // expected-error {{expected expression}} #pragma omp parallel if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel' are ignored}} - #pragma omp parallel if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel if ((argc > 0) ? argv[1] : argv[2]) #pragma omp parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel' cannot contain more than one 'if' clause}} #pragma omp parallel if (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp parallel if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} diff --git a/clang/test/OpenMP/parallel_masked_copyin_messages.cpp b/clang/test/OpenMP/parallel_masked_copyin_messages.cpp --- a/clang/test/OpenMP/parallel_masked_copyin_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_copyin_messages.cpp @@ -82,7 +82,7 @@ { foo(); } -#pragma omp parallel masked copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_masked_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_masked_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_masked_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_firstprivate_messages.cpp @@ -98,7 +98,7 @@ { foo(); } -#pragma omp parallel masked firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -204,7 +204,7 @@ { foo(); } -#pragma omp parallel masked firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_masked_if_messages.cpp b/clang/test/OpenMP/parallel_masked_if_messages.cpp --- a/clang/test/OpenMP/parallel_masked_if_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_if_messages.cpp @@ -45,7 +45,7 @@ { foo(); } - #pragma omp parallel masked if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel masked if ((argc > 0) ? argv[1] : argv[2]) { foo(); } @@ -119,7 +119,7 @@ { foo(); } - #pragma omp parallel masked if (argc > 0 ? argv[1] : argv[2] + z) + #pragma omp parallel masked if ((argc > 0) ? argv[1] : argv[2] + z) { foo(); } diff --git a/clang/test/OpenMP/parallel_masked_num_threads_messages.cpp b/clang/test/OpenMP/parallel_masked_num_threads_messages.cpp --- a/clang/test/OpenMP/parallel_masked_num_threads_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_num_threads_messages.cpp @@ -52,7 +52,7 @@ {foo();} #pragma omp parallel masked num_threads (argc / z)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked' are ignored}} {foo();} - #pragma omp parallel masked num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp parallel masked num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} {foo();} #pragma omp parallel masked num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp parallel masked' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} {foo();} diff --git a/clang/test/OpenMP/parallel_masked_private_messages.cpp b/clang/test/OpenMP/parallel_masked_private_messages.cpp --- a/clang/test/OpenMP/parallel_masked_private_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_private_messages.cpp @@ -131,7 +131,7 @@ { foo(); } -#pragma omp parallel masked private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -221,7 +221,7 @@ { foo(); } -#pragma omp parallel masked private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_masked_reduction_messages.cpp b/clang/test/OpenMP/parallel_masked_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_masked_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_reduction_messages.cpp @@ -297,7 +297,7 @@ { foo(); } -#pragma omp parallel masked reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel masked reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} { foo(); } diff --git a/clang/test/OpenMP/parallel_masked_shared_messages.cpp b/clang/test/OpenMP/parallel_masked_shared_messages.cpp --- a/clang/test/OpenMP/parallel_masked_shared_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_shared_messages.cpp @@ -75,7 +75,7 @@ { foo(); } #pragma omp parallel masked shared(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} { foo(); } -#pragma omp parallel masked shared(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked shared((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } #pragma omp parallel masked shared(argc) { foo(); } diff --git a/clang/test/OpenMP/parallel_masked_taskloop_collapse_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_collapse_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_collapse_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp parallel masked taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel masked taskloop', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel masked taskloop collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel masked taskloop collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_final_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_final_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_final_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel masked taskloop final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp parallel masked taskloop final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel masked taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel masked taskloop final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp parallel masked taskloop final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel masked taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel masked taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_masked_taskloop_grainsize_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_grainsize_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_grainsize_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_grainsize_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'grainsize' clause}} @@ -71,7 +71,7 @@ #pragma omp parallel masked taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel masked taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel masked taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_masked_taskloop_num_tasks_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_num_tasks_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_num_tasks_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp parallel masked taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel masked taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_priority_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_priority_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_priority_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel masked taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel masked taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel masked taskloop' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_private_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_private_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_private_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp parallel masked taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel masked taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp parallel masked taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel masked taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop private(argc) diff --git a/clang/test/OpenMP/parallel_masked_taskloop_reduction_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp parallel masked taskloop reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel masked taskloop reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel masked taskloop reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_aligned_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp parallel masked taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp parallel masked taskloop simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel masked taskloop simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp parallel masked taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel masked taskloop simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel masked taskloop simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp parallel masked taskloop simd aligned (argc) diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_collapse_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp parallel masked taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel masked taskloop simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel masked taskloop simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel masked taskloop simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_final_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_final_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_final_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop simd final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel masked taskloop simd final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp parallel masked taskloop simd final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel masked taskloop simd final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel masked taskloop simd final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp parallel masked taskloop simd final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel masked taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel masked taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_grainsize_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_grainsize_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_grainsize_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp parallel masked taskloop simd grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp parallel masked taskloop simd grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel masked taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel masked taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_linear_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_linear_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_linear_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_linear_messages.cpp @@ -143,7 +143,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd linear (val(argc, // expected-error {{expected expression}} expected-error 2 {{expected ')'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel masked taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel masked taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -232,7 +232,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel masked taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel masked taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd linear (argc, z) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_num_tasks_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_num_tasks_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_num_tasks_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp parallel masked taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel masked taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_priority_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_priority_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_priority_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel masked taskloop simd priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel masked taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel masked taskloop simd priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel masked taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel masked taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_private_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_private_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_private_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp parallel masked taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel masked taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp parallel masked taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel masked taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel masked taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel masked taskloop simd private(argc) diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_reduction_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp parallel masked taskloop simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel masked taskloop simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel masked taskloop simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel masked taskloop simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_safelen_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp parallel masked taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel masked taskloop simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel masked taskloop simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/parallel_masked_taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/parallel_masked_taskloop_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/parallel_masked_taskloop_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/parallel_masked_taskloop_simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp parallel masked taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel masked taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel masked taskloop simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel masked taskloop simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel masked taskloop simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/parallel_master_copyin_messages.cpp b/clang/test/OpenMP/parallel_master_copyin_messages.cpp --- a/clang/test/OpenMP/parallel_master_copyin_messages.cpp +++ b/clang/test/OpenMP/parallel_master_copyin_messages.cpp @@ -82,7 +82,7 @@ { foo(); } -#pragma omp parallel master copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_master_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_master_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_master_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_master_firstprivate_messages.cpp @@ -98,7 +98,7 @@ { foo(); } -#pragma omp parallel master firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -204,7 +204,7 @@ { foo(); } -#pragma omp parallel master firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_master_if_messages.cpp b/clang/test/OpenMP/parallel_master_if_messages.cpp --- a/clang/test/OpenMP/parallel_master_if_messages.cpp +++ b/clang/test/OpenMP/parallel_master_if_messages.cpp @@ -45,7 +45,7 @@ { foo(); } - #pragma omp parallel master if (argc > 0 ? argv[1] : argv[2]) +#pragma omp parallel master if ((argc > 0) ? argv[1] : argv[2]) { foo(); } @@ -119,7 +119,7 @@ { foo(); } - #pragma omp parallel master if (argc > 0 ? argv[1] : argv[2] + z) +#pragma omp parallel master if ((argc > 0) ? argv[1] : argv[2] + z) { foo(); } diff --git a/clang/test/OpenMP/parallel_master_num_threads_messages.cpp b/clang/test/OpenMP/parallel_master_num_threads_messages.cpp --- a/clang/test/OpenMP/parallel_master_num_threads_messages.cpp +++ b/clang/test/OpenMP/parallel_master_num_threads_messages.cpp @@ -52,7 +52,7 @@ {foo();} #pragma omp parallel master num_threads (argc / z)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master' are ignored}} {foo();} - #pragma omp parallel master num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp parallel master num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} {foo();} #pragma omp parallel master num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp parallel master' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} {foo();} diff --git a/clang/test/OpenMP/parallel_master_private_messages.cpp b/clang/test/OpenMP/parallel_master_private_messages.cpp --- a/clang/test/OpenMP/parallel_master_private_messages.cpp +++ b/clang/test/OpenMP/parallel_master_private_messages.cpp @@ -131,7 +131,7 @@ { foo(); } -#pragma omp parallel master private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -221,7 +221,7 @@ { foo(); } -#pragma omp parallel master private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_master_reduction_messages.cpp b/clang/test/OpenMP/parallel_master_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_master_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_master_reduction_messages.cpp @@ -297,7 +297,7 @@ { foo(); } -#pragma omp parallel master reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel master reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} { foo(); } diff --git a/clang/test/OpenMP/parallel_master_shared_messages.cpp b/clang/test/OpenMP/parallel_master_shared_messages.cpp --- a/clang/test/OpenMP/parallel_master_shared_messages.cpp +++ b/clang/test/OpenMP/parallel_master_shared_messages.cpp @@ -75,7 +75,7 @@ { foo(); } #pragma omp parallel master shared(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} { foo(); } -#pragma omp parallel master shared(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master shared((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } #pragma omp parallel master shared(argc) { foo(); } diff --git a/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp parallel master taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel master taskloop collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel master taskloop collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_final_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_final_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_final_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel master taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel master taskloop final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp parallel master taskloop final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel master taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel master taskloop final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp parallel master taskloop final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel master taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel master taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_master_taskloop_grainsize_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_grainsize_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_grainsize_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp parallel master taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp parallel master taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel master taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel master taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_master_taskloop_num_tasks_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_num_tasks_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_num_tasks_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel master taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp parallel master taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel master taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_priority_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_priority_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_priority_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel master taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel master taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel master taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_private_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_private_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_private_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp parallel master taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel master taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp parallel master taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel master taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop private(argc) diff --git a/clang/test/OpenMP/parallel_master_taskloop_reduction_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp parallel master taskloop reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel master taskloop reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel master taskloop reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp parallel master taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp parallel master taskloop simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel master taskloop simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp parallel master taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel master taskloop simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel master taskloop simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp parallel master taskloop simd aligned (argc) diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp parallel master taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp parallel master taskloop simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel master taskloop simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel master taskloop simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_final_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_final_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_final_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel master taskloop simd final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel master taskloop simd final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp parallel master taskloop simd final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel master taskloop simd final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel master taskloop simd final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp parallel master taskloop simd final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel master taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel master taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_grainsize_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_grainsize_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_grainsize_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp parallel master taskloop simd grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp parallel master taskloop simd grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp parallel master taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp parallel master taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_linear_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_linear_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_linear_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_linear_messages.cpp @@ -143,7 +143,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd linear (val(argc, // expected-error {{expected expression}} expected-error 2 {{expected ')'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel master taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel master taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -232,7 +232,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp parallel master taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel master taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd linear (argc, z) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_num_tasks_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_num_tasks_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_num_tasks_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel master taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp parallel master taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel master taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_priority_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_priority_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_priority_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp parallel master taskloop simd priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp parallel master taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp parallel master taskloop simd priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp parallel master taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp parallel master taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_private_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_private_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_private_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp parallel master taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel master taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp parallel master taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel master taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel master taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel master taskloop simd private(argc) diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_reduction_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp parallel master taskloop simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp parallel master taskloop simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel master taskloop simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp parallel master taskloop simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp parallel master taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel master taskloop simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel master taskloop simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/parallel_master_taskloop_simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp parallel master taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp parallel master taskloop simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp parallel master taskloop simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp parallel master taskloop simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/parallel_num_threads_messages.cpp b/clang/test/OpenMP/parallel_num_threads_messages.cpp --- a/clang/test/OpenMP/parallel_num_threads_messages.cpp +++ b/clang/test/OpenMP/parallel_num_threads_messages.cpp @@ -40,7 +40,7 @@ #pragma omp parallel num_threads () // expected-error {{expected expression}} #pragma omp parallel num_threads (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel num_threads (z+argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel' are ignored}} - #pragma omp parallel num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp parallel num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} #pragma omp parallel num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp parallel' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} #pragma omp parallel num_threads (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp parallel num_threads (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} diff --git a/clang/test/OpenMP/parallel_private_messages.cpp b/clang/test/OpenMP/parallel_private_messages.cpp --- a/clang/test/OpenMP/parallel_private_messages.cpp +++ b/clang/test/OpenMP/parallel_private_messages.cpp @@ -64,7 +64,7 @@ #pragma omp parallel private () // expected-error {{expected expression}} #pragma omp parallel private (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} - #pragma omp parallel private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp parallel private (argc argv) // expected-error {{expected ',' or ')' in 'private' clause}} #pragma omp parallel private (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp parallel private (a, b, c, d, f) // expected-error {{a private variable with incomplete type 'S1'}} expected-error 1 {{const-qualified variable without mutable fields cannot be private}} expected-error 2 {{const-qualified variable cannot be private}} diff --git a/clang/test/OpenMP/parallel_reduction_messages.cpp b/clang/test/OpenMP/parallel_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_reduction_messages.cpp @@ -219,7 +219,7 @@ foo(); #pragma omp parallel reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp parallel reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp parallel reduction(~ : argc) // expected-error {{expected unqualified-id}} foo(); diff --git a/clang/test/OpenMP/parallel_sections_copyin_messages.cpp b/clang/test/OpenMP/parallel_sections_copyin_messages.cpp --- a/clang/test/OpenMP/parallel_sections_copyin_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_copyin_messages.cpp @@ -82,7 +82,7 @@ { foo(); } -#pragma omp parallel sections copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_sections_firstprivate_messages.cpp b/clang/test/OpenMP/parallel_sections_firstprivate_messages.cpp --- a/clang/test/OpenMP/parallel_sections_firstprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_firstprivate_messages.cpp @@ -98,7 +98,7 @@ { foo(); } -#pragma omp parallel sections firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -204,7 +204,7 @@ { foo(); } -#pragma omp parallel sections firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_sections_if_messages.cpp b/clang/test/OpenMP/parallel_sections_if_messages.cpp --- a/clang/test/OpenMP/parallel_sections_if_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_if_messages.cpp @@ -45,7 +45,7 @@ { foo(); } - #pragma omp parallel sections if (argc > 0 ? argv[1] : argv[2]) + #pragma omp parallel sections if ((argc > 0) ? argv[1] : argv[2]) { foo(); } @@ -119,7 +119,7 @@ { foo(); } - #pragma omp parallel sections if (argc > 0 ? argv[1] : argv[2] + z) + #pragma omp parallel sections if ((argc > 0) ? argv[1] : argv[2] + z) { foo(); } diff --git a/clang/test/OpenMP/parallel_sections_lastprivate_messages.cpp b/clang/test/OpenMP/parallel_sections_lastprivate_messages.cpp --- a/clang/test/OpenMP/parallel_sections_lastprivate_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_lastprivate_messages.cpp @@ -92,7 +92,7 @@ { foo(); } -#pragma omp parallel sections lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -192,7 +192,7 @@ { foo(); } -#pragma omp parallel sections lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_sections_num_threads_messages.cpp b/clang/test/OpenMP/parallel_sections_num_threads_messages.cpp --- a/clang/test/OpenMP/parallel_sections_num_threads_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_num_threads_messages.cpp @@ -52,7 +52,7 @@ {foo();} #pragma omp parallel sections num_threads (argc / z)) // expected-warning {{extra tokens at the end of '#pragma omp parallel sections' are ignored}} {foo();} - #pragma omp parallel sections num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp parallel sections num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} {foo();} #pragma omp parallel sections num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp parallel sections' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} {foo();} diff --git a/clang/test/OpenMP/parallel_sections_private_messages.cpp b/clang/test/OpenMP/parallel_sections_private_messages.cpp --- a/clang/test/OpenMP/parallel_sections_private_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_private_messages.cpp @@ -131,7 +131,7 @@ { foo(); } -#pragma omp parallel sections private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -221,7 +221,7 @@ { foo(); } -#pragma omp parallel sections private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/parallel_sections_reduction_messages.cpp b/clang/test/OpenMP/parallel_sections_reduction_messages.cpp --- a/clang/test/OpenMP/parallel_sections_reduction_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_reduction_messages.cpp @@ -297,7 +297,7 @@ { foo(); } -#pragma omp parallel sections reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp parallel sections reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} { foo(); } diff --git a/clang/test/OpenMP/parallel_sections_shared_messages.cpp b/clang/test/OpenMP/parallel_sections_shared_messages.cpp --- a/clang/test/OpenMP/parallel_sections_shared_messages.cpp +++ b/clang/test/OpenMP/parallel_sections_shared_messages.cpp @@ -75,7 +75,7 @@ { foo(); } #pragma omp parallel sections shared(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} { foo(); } -#pragma omp parallel sections shared(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp parallel sections shared((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } #pragma omp parallel sections shared(argc) { foo(); } diff --git a/clang/test/OpenMP/parallel_shared_messages.cpp b/clang/test/OpenMP/parallel_shared_messages.cpp --- a/clang/test/OpenMP/parallel_shared_messages.cpp +++ b/clang/test/OpenMP/parallel_shared_messages.cpp @@ -66,7 +66,7 @@ #pragma omp parallel shared () // expected-error {{expected expression}} #pragma omp parallel shared (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} - #pragma omp parallel shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp parallel shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp parallel shared (argc) #pragma omp parallel shared (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp parallel shared (a, b, c, d, f, k) diff --git a/clang/test/OpenMP/sections_firstprivate_messages.cpp b/clang/test/OpenMP/sections_firstprivate_messages.cpp --- a/clang/test/OpenMP/sections_firstprivate_messages.cpp +++ b/clang/test/OpenMP/sections_firstprivate_messages.cpp @@ -95,7 +95,7 @@ foo(); } #pragma omp parallel -#pragma omp sections firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp sections firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -216,7 +216,7 @@ foo(); } #pragma omp parallel -#pragma omp sections firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp sections firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/sections_lastprivate_messages.cpp b/clang/test/OpenMP/sections_lastprivate_messages.cpp --- a/clang/test/OpenMP/sections_lastprivate_messages.cpp +++ b/clang/test/OpenMP/sections_lastprivate_messages.cpp @@ -99,7 +99,7 @@ foo(); } #pragma omp parallel -#pragma omp sections lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp sections lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -215,7 +215,7 @@ foo(); } #pragma omp parallel -#pragma omp sections lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp sections lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/sections_private_messages.cpp b/clang/test/OpenMP/sections_private_messages.cpp --- a/clang/test/OpenMP/sections_private_messages.cpp +++ b/clang/test/OpenMP/sections_private_messages.cpp @@ -131,7 +131,7 @@ { foo(); } -#pragma omp sections private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp sections private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } @@ -221,7 +221,7 @@ { foo(); } -#pragma omp sections private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp sections private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} { foo(); } diff --git a/clang/test/OpenMP/sections_reduction_messages.cpp b/clang/test/OpenMP/sections_reduction_messages.cpp --- a/clang/test/OpenMP/sections_reduction_messages.cpp +++ b/clang/test/OpenMP/sections_reduction_messages.cpp @@ -336,7 +336,7 @@ foo(); } #pragma omp parallel -#pragma omp sections reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp sections reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} { foo(); } diff --git a/clang/test/OpenMP/simd_aligned_messages.cpp b/clang/test/OpenMP/simd_aligned_messages.cpp --- a/clang/test/OpenMP/simd_aligned_messages.cpp +++ b/clang/test/OpenMP/simd_aligned_messages.cpp @@ -125,7 +125,7 @@ #pragma omp simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp simd aligned (argc : 5) // expectedw-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -183,7 +183,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp simd aligned (argc) diff --git a/clang/test/OpenMP/simd_collapse_messages.cpp b/clang/test/OpenMP/simd_collapse_messages.cpp --- a/clang/test/OpenMP/simd_collapse_messages.cpp +++ b/clang/test/OpenMP/simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/simd_if_messages.cpp b/clang/test/OpenMP/simd_if_messages.cpp --- a/clang/test/OpenMP/simd_if_messages.cpp +++ b/clang/test/OpenMP/simd_if_messages.cpp @@ -32,7 +32,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -72,7 +72,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/simd_lastprivate_messages.cpp b/clang/test/OpenMP/simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/simd_lastprivate_messages.cpp @@ -87,7 +87,7 @@ #pragma omp simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp simd lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -161,7 +161,7 @@ #pragma omp simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp simd lastprivate(argc) diff --git a/clang/test/OpenMP/simd_linear_messages.cpp b/clang/test/OpenMP/simd_linear_messages.cpp --- a/clang/test/OpenMP/simd_linear_messages.cpp +++ b/clang/test/OpenMP/simd_linear_messages.cpp @@ -133,7 +133,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp simd linear (val(argc, // expected-error {{expected expression}} expected-error 2 {{expected ')'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -222,7 +222,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp simd linear (argc) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/simd_private_messages.cpp b/clang/test/OpenMP/simd_private_messages.cpp --- a/clang/test/OpenMP/simd_private_messages.cpp +++ b/clang/test/OpenMP/simd_private_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp simd private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp simd private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp simd private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp simd private (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -161,7 +161,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp simd private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp simd private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp simd private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp simd private (argc) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/simd_reduction_messages.cpp b/clang/test/OpenMP/simd_reduction_messages.cpp --- a/clang/test/OpenMP/simd_reduction_messages.cpp +++ b/clang/test/OpenMP/simd_reduction_messages.cpp @@ -257,7 +257,7 @@ #pragma omp simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/simd_safelen_messages.cpp b/clang/test/OpenMP/simd_safelen_messages.cpp --- a/clang/test/OpenMP/simd_safelen_messages.cpp +++ b/clang/test/OpenMP/simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/simd_simdlen_messages.cpp b/clang/test/OpenMP/simd_simdlen_messages.cpp --- a/clang/test/OpenMP/simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/single_copyprivate_messages.cpp b/clang/test/OpenMP/single_copyprivate_messages.cpp --- a/clang/test/OpenMP/single_copyprivate_messages.cpp +++ b/clang/test/OpenMP/single_copyprivate_messages.cpp @@ -60,7 +60,7 @@ #pragma omp parallel #pragma omp single copyprivate(h, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel -#pragma omp single copyprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp single copyprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp parallel #pragma omp single copyprivate(l) // expected-error 2 {{'operator=' is a private member of 'S4'}} #pragma omp parallel @@ -136,7 +136,7 @@ #pragma omp parallel #pragma omp single copyprivate(h, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp parallel -#pragma omp single copyprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp single copyprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp parallel #pragma omp single copyprivate(l, B::x) // expected-error {{'operator=' is a private member of 'S4'}} #pragma omp parallel diff --git a/clang/test/OpenMP/single_firstprivate_messages.cpp b/clang/test/OpenMP/single_firstprivate_messages.cpp --- a/clang/test/OpenMP/single_firstprivate_messages.cpp +++ b/clang/test/OpenMP/single_firstprivate_messages.cpp @@ -85,7 +85,7 @@ #pragma omp single firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); #pragma omp parallel -#pragma omp single firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp single firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp parallel #pragma omp single firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -168,7 +168,7 @@ #pragma omp single firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); #pragma omp parallel -#pragma omp single firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp single firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp parallel #pragma omp single firstprivate(argc, z) diff --git a/clang/test/OpenMP/single_private_messages.cpp b/clang/test/OpenMP/single_private_messages.cpp --- a/clang/test/OpenMP/single_private_messages.cpp +++ b/clang/test/OpenMP/single_private_messages.cpp @@ -109,7 +109,7 @@ foo(); #pragma omp single private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp single private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp single private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp single private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} foo(); @@ -167,7 +167,7 @@ foo(); #pragma omp single private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp single private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp single private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp single private(argc) foo(); diff --git a/clang/test/OpenMP/target_data_device_messages.cpp b/clang/test/OpenMP/target_data_device_messages.cpp --- a/clang/test/OpenMP/target_data_device_messages.cpp +++ b/clang/test/OpenMP/target_data_device_messages.cpp @@ -18,7 +18,7 @@ #pragma omp target data map(to: a) device () // expected-error {{expected expression}} #pragma omp target data map(to: a) device (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target data map(to: a) device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target data' are ignored}} -#pragma omp target data map(to: a) device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target data map(to: a) device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} #pragma omp target data map(to: a) device (argc + argc + z) #pragma omp target data map(to: a) device (argc), device (argc+1) // expected-error {{directive '#pragma omp target data' cannot contain more than one 'device' clause}} #pragma omp target data map(to: a) device (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_data_if_messages.cpp b/clang/test/OpenMP/target_data_if_messages.cpp --- a/clang/test/OpenMP/target_data_if_messages.cpp +++ b/clang/test/OpenMP/target_data_if_messages.cpp @@ -25,7 +25,7 @@ #pragma omp target data map(to: a) if () // expected-error {{expected expression}} #pragma omp target data map(to: a) if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target data map(to: a) if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target data' are ignored}} - #pragma omp target data map(to: a) if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target data map(to: a) if ((argc > 0) ? argv[1] : argv[2]) #pragma omp target data map(to: a) if (argc + argc + z) #pragma omp target data map(to: a) if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target data' cannot contain more than one 'if' clause}} #pragma omp target data map(to: a) if (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_device_messages.cpp b/clang/test/OpenMP/target_device_messages.cpp --- a/clang/test/OpenMP/target_device_messages.cpp +++ b/clang/test/OpenMP/target_device_messages.cpp @@ -27,7 +27,7 @@ foo(); #pragma omp target device (z-argc)) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} foo(); - #pragma omp target device (device_num : argc > 0 ? argv[1] : argv[2]) // omp45-error {{use of undeclared identifier 'device_num'}} omp45-error {{expected ')'}} omp45-note {{to match this '('}} omp50-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp target device (device_num : (argc > 0) ? argv[1] : argv[2]) // omp45-error {{use of undeclared identifier 'device_num'}} omp45-error {{expected ')'}} omp45-note {{to match this '('}} omp50-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target device (argc: argc + argc) // omp45-error {{expected ')'}} omp45-note {{to match this '('}} omp50-error {{expected 'ancestor' or 'device_num' in OpenMP clause 'device'}} foo(); diff --git a/clang/test/OpenMP/target_enter_data_device_messages.cpp b/clang/test/OpenMP/target_enter_data_device_messages.cpp --- a/clang/test/OpenMP/target_enter_data_device_messages.cpp +++ b/clang/test/OpenMP/target_enter_data_device_messages.cpp @@ -18,7 +18,7 @@ #pragma omp target enter data map(to: i) device () // expected-error {{expected expression}} #pragma omp target enter data map(to: i) device (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target enter data map(to: i) device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target enter data' are ignored}} -#pragma omp target enter data map(to: i) device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target enter data map(to: i) device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} #pragma omp target enter data map(to: i) device (argc +z + argc ) #pragma omp target enter data map(to: i) device (argc), device (argc+1) // expected-error {{directive '#pragma omp target enter data' cannot contain more than one 'device' clause}} #pragma omp target enter data map(to: i) device (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_enter_data_if_messages.cpp b/clang/test/OpenMP/target_enter_data_if_messages.cpp --- a/clang/test/OpenMP/target_enter_data_if_messages.cpp +++ b/clang/test/OpenMP/target_enter_data_if_messages.cpp @@ -28,7 +28,7 @@ #pragma omp target enter data map(to: i) if () // expected-error {{expected expression}} #pragma omp target enter data map(to: i) if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target enter data map(to: i) if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target enter data' are ignored}} - #pragma omp target enter data map(to: i) if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target enter data map(to: i) if ((argc > 0) ? argv[1] : argv[2]) #pragma omp target enter data map(to: i) if (argc + argc) #pragma omp target enter data map(to: i) if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target enter data' cannot contain more than one 'if' clause}} #pragma omp target enter data map(to: i) if (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_exit_data_device_messages.cpp b/clang/test/OpenMP/target_exit_data_device_messages.cpp --- a/clang/test/OpenMP/target_exit_data_device_messages.cpp +++ b/clang/test/OpenMP/target_exit_data_device_messages.cpp @@ -18,7 +18,7 @@ #pragma omp target exit data map(from: i) device () // expected-error {{expected expression}} #pragma omp target exit data map(from: i) device (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target exit data map(from: i) device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target exit data' are ignored}} -#pragma omp target exit data map(from: i) device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target exit data map(from: i) device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} #pragma omp target exit data map(from: i) device (argc + argc) #pragma omp target exit data map(from: i) device (argc), device (argc+1) // expected-error {{directive '#pragma omp target exit data' cannot contain more than one 'device' clause}} #pragma omp target exit data map(from: i) device (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_exit_data_if_messages.cpp b/clang/test/OpenMP/target_exit_data_if_messages.cpp --- a/clang/test/OpenMP/target_exit_data_if_messages.cpp +++ b/clang/test/OpenMP/target_exit_data_if_messages.cpp @@ -28,7 +28,7 @@ #pragma omp target exit data map(from: i) if () // expected-error {{expected expression}} #pragma omp target exit data map(from: i) if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target exit data map(from: i) if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target exit data' are ignored}} - #pragma omp target exit data map(from: i) if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target exit data map(from: i) if ((argc > 0) ? argv[1] : argv[2]) #pragma omp target exit data map(from: i) if (argc + argc + z) #pragma omp target exit data map(from: i) if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target exit data' cannot contain more than one 'if' clause}} #pragma omp target exit data map(from: i) if (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_firstprivate_messages.cpp b/clang/test/OpenMP/target_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_firstprivate_messages.cpp @@ -119,7 +119,7 @@ {} #pragma omp target firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} {} -#pragma omp target firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} {} #pragma omp target firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} {} @@ -179,7 +179,7 @@ {} #pragma omp target firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} {} -#pragma omp target firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} {} #pragma omp target firstprivate(argc, z) {} diff --git a/clang/test/OpenMP/target_if_messages.cpp b/clang/test/OpenMP/target_if_messages.cpp --- a/clang/test/OpenMP/target_if_messages.cpp +++ b/clang/test/OpenMP/target_if_messages.cpp @@ -34,7 +34,7 @@ foo(); #pragma omp target if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} foo(); - #pragma omp target if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target if ((argc > 0) ? argv[1] : argv[2]) foo(); #pragma omp target if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target' cannot contain more than one 'if' clause}} foo(); @@ -74,7 +74,7 @@ foo(); #pragma omp target if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} foo(); - #pragma omp target if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target if ((argc > 0) ? argv[1] : argv[2]) foo(); #pragma omp target if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target' cannot contain more than one 'if' clause}} foo(); diff --git a/clang/test/OpenMP/target_map_messages.cpp b/clang/test/OpenMP/target_map_messages.cpp --- a/clang/test/OpenMP/target_map_messages.cpp +++ b/clang/test/OpenMP/target_map_messages.cpp @@ -664,7 +664,7 @@ #pragma omp target map(to, x) foo(); #pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}} -#pragma omp target data map(tofrom: argc > 0 ? x : y) // lt50-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error 2 {{expected addressable lvalue in 'map' clause}} +#pragma omp target data map(tofrom: (argc > 0) ? x : y) // lt50-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error 2 {{expected addressable lvalue in 'map' clause}} #pragma omp target data map(argc) #pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}} #pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} warn-warning 2 {{Type 'const S2' is not trivially copyable and not guaranteed to be mapped correctly}} warn-warning 2 {{Type 'const S3' is not trivially copyable and not guaranteed to be mapped correctly}} @@ -798,7 +798,7 @@ #pragma omp target map(to, x) foo(); #pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}} -#pragma omp target data map(tofrom: argc > 0 ? argv[1] : argv[2]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}} +#pragma omp target data map(tofrom: (argc > 0) ? argv[1] : argv[2]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}} #pragma omp target data map(argc) #pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}} #pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} warn-warning {{Type 'const S2' is not trivially copyable and not guaranteed to be mapped correctly}} warn-warning {{Type 'const S3' is not trivially copyable and not guaranteed to be mapped correctly}} diff --git a/clang/test/OpenMP/target_ompx_dyn_cgroup_mem_messages.cpp b/clang/test/OpenMP/target_ompx_dyn_cgroup_mem_messages.cpp --- a/clang/test/OpenMP/target_ompx_dyn_cgroup_mem_messages.cpp +++ b/clang/test/OpenMP/target_ompx_dyn_cgroup_mem_messages.cpp @@ -27,7 +27,7 @@ foo(); #pragma omp target ompx_dyn_cgroup_mem (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} foo(); - #pragma omp target ompx_dyn_cgroup_mem (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp target ompx_dyn_cgroup_mem ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target ompx_dyn_cgroup_mem (foobool(argc)), ompx_dyn_cgroup_mem (true) // expected-error {{directive '#pragma omp target' cannot contain more than one 'ompx_dyn_cgroup_mem' clause}} foo(); @@ -54,7 +54,7 @@ foo(); #pragma omp target ompx_dyn_cgroup_mem (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} foo(); - #pragma omp target ompx_dyn_cgroup_mem (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp target ompx_dyn_cgroup_mem ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target ompx_dyn_cgroup_mem (foobool(argc)), ompx_dyn_cgroup_mem (true) // expected-error {{directive '#pragma omp target' cannot contain more than one 'ompx_dyn_cgroup_mem' clause}} foo(); diff --git a/clang/test/OpenMP/target_parallel_device_messages.cpp b/clang/test/OpenMP/target_parallel_device_messages.cpp --- a/clang/test/OpenMP/target_parallel_device_messages.cpp +++ b/clang/test/OpenMP/target_parallel_device_messages.cpp @@ -23,7 +23,7 @@ foo(); #pragma omp target parallel device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel' are ignored}} foo(); - #pragma omp target parallel device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp target parallel device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target parallel device (argc + argc) foo(); diff --git a/clang/test/OpenMP/target_parallel_firstprivate_messages.cpp b/clang/test/OpenMP/target_parallel_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_parallel_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_parallel_firstprivate_messages.cpp @@ -95,7 +95,7 @@ foo(); #pragma omp target parallel firstprivate (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); - #pragma omp target parallel firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target parallel firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target parallel firstprivate (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} foo(); diff --git a/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp @@ -72,7 +72,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target parallel for', but found only 1}} #pragma omp target parallel for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target parallel for', but found only 1}} - #pragma omp target parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} + #pragma omp target parallel for collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/target_parallel_for_device_messages.cpp b/clang/test/OpenMP/target_parallel_for_device_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_device_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp target parallel for device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for device (z + argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_firstprivate_messages.cpp b/clang/test/OpenMP/target_parallel_for_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_firstprivate_messages.cpp @@ -102,7 +102,7 @@ #pragma omp target parallel for firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -187,7 +187,7 @@ #pragma omp target parallel for firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target parallel for firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for allocate(omp_thread_mem_alloc: argc) firstprivate(argc) // expected-warning {{allocator with the 'thread' trait access has unspecified behavior on 'target parallel for' directive}} diff --git a/clang/test/OpenMP/target_parallel_for_if_messages.cpp b/clang/test/OpenMP/target_parallel_for_if_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_if_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_if_messages.cpp @@ -35,7 +35,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target parallel for' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -83,7 +83,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for if (argc > 0 ? argv[1] : argv[2] - z) + #pragma omp target parallel for if ((argc > 0) ? argv[1] : argv[2] - z) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target parallel for' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_lastprivate_messages.cpp b/clang/test/OpenMP/target_parallel_for_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_lastprivate_messages.cpp @@ -99,7 +99,7 @@ #pragma omp target parallel for lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -179,7 +179,7 @@ #pragma omp target parallel for lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for lastprivate(argc) diff --git a/clang/test/OpenMP/target_parallel_for_linear_messages.cpp b/clang/test/OpenMP/target_parallel_for_linear_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_linear_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_linear_messages.cpp @@ -154,7 +154,7 @@ #pragma omp target parallel for linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for linear(argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -239,7 +239,7 @@ #pragma omp target parallel for linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for linear(argc, z) diff --git a/clang/test/OpenMP/target_parallel_for_map_messages.cpp b/clang/test/OpenMP/target_parallel_for_map_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_map_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_map_messages.cpp @@ -130,7 +130,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target parallel for map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for map(argc) for (i = 0; i < argc; ++i) foo(); @@ -246,7 +246,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target parallel for map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_num_threads_messages.cpp b/clang/test/OpenMP/target_parallel_for_num_threads_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_num_threads_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_num_threads_messages.cpp @@ -52,7 +52,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for num_threads (z + argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp target parallel for num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp b/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp @@ -90,7 +90,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; // expected-error {{expected 4 for loops after '#pragma omp target parallel for', but found only 1}} -#pragma omp target parallel for ordered(foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target parallel for ordered((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; diff --git a/clang/test/OpenMP/target_parallel_for_private_messages.cpp b/clang/test/OpenMP/target_parallel_for_private_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_private_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp target parallel for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -196,7 +196,7 @@ #pragma omp target parallel for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for private(argc, z) diff --git a/clang/test/OpenMP/target_parallel_for_reduction_messages.cpp b/clang/test/OpenMP/target_parallel_for_reduction_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_reduction_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_reduction_messages.cpp @@ -264,7 +264,7 @@ #pragma omp target parallel for reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target parallel for reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target parallel for reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target parallel for reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/target_parallel_for_schedule_messages.cpp b/clang/test/OpenMP/target_parallel_for_schedule_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_schedule_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_schedule_messages.cpp @@ -74,7 +74,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp target parallel for schedule (static, 2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; - #pragma omp target parallel for schedule (dynamic, foobool(1) > 0 ? 1 : 2 + z) + #pragma omp target parallel for schedule (dynamic, (foobool(1) > 0) ? 1 : 2 + z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp target parallel for' cannot contain more than one 'schedule' clause}} // expected-error@+1 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp target parallel for simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp target parallel for simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target parallel for simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp target parallel for simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp target parallel for simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target parallel for simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp target parallel for simd aligned (argc) diff --git a/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp @@ -73,7 +73,7 @@ #if __cplusplus >= 201103L #endif - #pragma omp target parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} + #pragma omp target parallel for simd collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_device_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_device_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_device_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for simd device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + #pragma omp target parallel for simd device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd device (argc + argc + z) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp @@ -103,7 +103,7 @@ #pragma omp target parallel for simd firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd firstprivate(argc) allocate(omp_thread_mem_alloc: argc) // expected-warning {{allocator with the 'thread' trait access has unspecified behavior on 'target parallel for simd' directive}} @@ -188,7 +188,7 @@ #pragma omp target parallel for simd firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target parallel for simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_if_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_if_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_if_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_if_messages.cpp @@ -33,7 +33,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target parallel for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -83,7 +83,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target parallel for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_simd_lastprivate_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_lastprivate_messages.cpp @@ -99,7 +99,7 @@ #pragma omp target parallel for simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd allocate(omp_thread_mem_alloc: argc) lastprivate(argc) // expected-warning {{allocator with the 'thread' trait access has unspecified behavior on 'target parallel for simd' directive}} omp50-error {{allocator must be specified in the 'uses_allocators' clause}} @@ -179,7 +179,7 @@ #pragma omp target parallel for simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_linear_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_linear_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_linear_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_linear_messages.cpp @@ -156,7 +156,7 @@ #pragma omp target parallel for simd linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for simd linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd linear(argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -241,7 +241,7 @@ #pragma omp target parallel for simd linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for simd linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd linear(argc, z) diff --git a/clang/test/OpenMP/target_parallel_for_simd_map_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_map_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_map_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_map_messages.cpp @@ -130,7 +130,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target parallel for simd map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd map(argc) for (i = 0; i < argc; ++i) foo(); @@ -246,7 +246,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target parallel for simd map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_simd_num_threads_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_num_threads_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_num_threads_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_num_threads_messages.cpp @@ -52,7 +52,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd num_threads (z-argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target parallel for simd num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp target parallel for simd num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target parallel for simd num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp @@ -94,7 +94,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; -#pragma omp target parallel for simd ordered(foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target parallel for simd ordered((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i - 4]; diff --git a/clang/test/OpenMP/target_parallel_for_simd_private_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_private_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_private_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp target parallel for simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -196,7 +196,7 @@ #pragma omp target parallel for simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target parallel for simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel for simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target parallel for simd private(argc, z) diff --git a/clang/test/OpenMP/target_parallel_for_simd_reduction_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_reduction_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_reduction_messages.cpp @@ -266,7 +266,7 @@ #pragma omp target parallel for simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target parallel for simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target parallel for simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target parallel for simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp target parallel for simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp target parallel for simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp target parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_schedule_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_schedule_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_schedule_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_schedule_messages.cpp @@ -74,7 +74,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp target parallel for simd schedule (static, 2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; - #pragma omp target parallel for simd schedule (dynamic, foobool(1) > 0 ? 1 : 2 - z) + #pragma omp target parallel for simd schedule (dynamic, (foobool(1) > 0) ? 1 : 2 - z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp target parallel for simd' cannot contain more than one 'schedule' clause}} // expected-error@+1 {{argument to 'schedule' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp @@ -95,7 +95,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} -#pragma omp target parallel for simd simdlen (foobool(1) > 0 ? 1 : 2) +#pragma omp target parallel for simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/target_parallel_if_messages.cpp b/clang/test/OpenMP/target_parallel_if_messages.cpp --- a/clang/test/OpenMP/target_parallel_if_messages.cpp +++ b/clang/test/OpenMP/target_parallel_if_messages.cpp @@ -34,7 +34,7 @@ foo(); #pragma omp target parallel if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel' are ignored}} foo(); - #pragma omp target parallel if (argc > 0 ? argv[1] : argv[2] + z) + #pragma omp target parallel if ((argc > 0) ? argv[1] : argv[2] + z) foo(); #pragma omp target parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target parallel' cannot contain more than one 'if' clause}} foo(); @@ -82,7 +82,7 @@ foo(); #pragma omp target parallel if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel' are ignored}} foo(); - #pragma omp target parallel if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target parallel if ((argc > 0) ? argv[1] : argv[2]) foo(); #pragma omp target parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target parallel' cannot contain more than one 'if' clause}} foo(); diff --git a/clang/test/OpenMP/target_parallel_map_messages.cpp b/clang/test/OpenMP/target_parallel_map_messages.cpp --- a/clang/test/OpenMP/target_parallel_map_messages.cpp +++ b/clang/test/OpenMP/target_parallel_map_messages.cpp @@ -130,7 +130,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target parallel map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) foo(); #pragma omp target parallel map(argc) foo(); @@ -243,7 +243,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target parallel map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) foo(); #pragma omp target parallel map(argc) foo(); diff --git a/clang/test/OpenMP/target_parallel_num_threads_messages.cpp b/clang/test/OpenMP/target_parallel_num_threads_messages.cpp --- a/clang/test/OpenMP/target_parallel_num_threads_messages.cpp +++ b/clang/test/OpenMP/target_parallel_num_threads_messages.cpp @@ -56,7 +56,7 @@ foo(); #pragma omp target parallel num_threads (z + argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel' are ignored}} foo(); - #pragma omp target parallel num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} + #pragma omp target parallel num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} foo(); #pragma omp target parallel num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp target parallel' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} foo(); diff --git a/clang/test/OpenMP/target_parallel_private_messages.cpp b/clang/test/OpenMP/target_parallel_private_messages.cpp --- a/clang/test/OpenMP/target_parallel_private_messages.cpp +++ b/clang/test/OpenMP/target_parallel_private_messages.cpp @@ -83,7 +83,7 @@ {} #pragma omp target parallel private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} {} -#pragma omp target parallel private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} {} #pragma omp target parallel private(argc argv) // expected-error {{expected ',' or ')' in 'private' clause}} {} @@ -170,7 +170,7 @@ {} #pragma omp target parallel private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} {} -#pragma omp target parallel private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target parallel private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} {} #pragma omp target parallel private(argc argv) // expected-error {{expected ',' or ')' in 'private' clause}} {} diff --git a/clang/test/OpenMP/target_parallel_reduction_messages.cpp b/clang/test/OpenMP/target_parallel_reduction_messages.cpp --- a/clang/test/OpenMP/target_parallel_reduction_messages.cpp +++ b/clang/test/OpenMP/target_parallel_reduction_messages.cpp @@ -230,7 +230,7 @@ foo(); #pragma omp target parallel reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp target parallel reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target parallel reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp target parallel reduction(~ : argc) // expected-error {{expected unqualified-id}} foo(); diff --git a/clang/test/OpenMP/target_parallel_shared_messages.cpp b/clang/test/OpenMP/target_parallel_shared_messages.cpp --- a/clang/test/OpenMP/target_parallel_shared_messages.cpp +++ b/clang/test/OpenMP/target_parallel_shared_messages.cpp @@ -71,7 +71,7 @@ foo(); #pragma omp target parallel shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); - #pragma omp target parallel shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target parallel shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target parallel shared (argc) foo(); diff --git a/clang/test/OpenMP/target_private_messages.cpp b/clang/test/OpenMP/target_private_messages.cpp --- a/clang/test/OpenMP/target_private_messages.cpp +++ b/clang/test/OpenMP/target_private_messages.cpp @@ -113,7 +113,7 @@ {} #pragma omp target private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} {} -#pragma omp target private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} {} #pragma omp target private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} {} @@ -173,7 +173,7 @@ {} #pragma omp target private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} {} -#pragma omp target private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} {} #pragma omp target private(argc) {} diff --git a/clang/test/OpenMP/target_reduction_messages.cpp b/clang/test/OpenMP/target_reduction_messages.cpp --- a/clang/test/OpenMP/target_reduction_messages.cpp +++ b/clang/test/OpenMP/target_reduction_messages.cpp @@ -227,7 +227,7 @@ foo(); #pragma omp target reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp target reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp target reduction(~ : argc) // expected-error {{expected unqualified-id}} foo(); diff --git a/clang/test/OpenMP/target_simd_aligned_messages.cpp b/clang/test/OpenMP/target_simd_aligned_messages.cpp --- a/clang/test/OpenMP/target_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/target_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp target simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp target simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp target simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp target simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp target simd aligned (argc) diff --git a/clang/test/OpenMP/target_simd_collapse_messages.cpp b/clang/test/OpenMP/target_simd_collapse_messages.cpp --- a/clang/test/OpenMP/target_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/target_simd_collapse_messages.cpp @@ -69,7 +69,7 @@ #pragma omp target simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target simd', but found only 1}} - #pragma omp target simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} + #pragma omp target simd collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/target_simd_device_messages.cpp b/clang/test/OpenMP/target_simd_device_messages.cpp --- a/clang/test/OpenMP/target_simd_device_messages.cpp +++ b/clang/test/OpenMP/target_simd_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target simd device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target simd device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target simd device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target simd device (argc + argc * z) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_simd_firstprivate_messages.cpp b/clang/test/OpenMP/target_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_simd_firstprivate_messages.cpp @@ -101,7 +101,7 @@ #pragma omp target simd firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target simd firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -186,7 +186,7 @@ #pragma omp target simd firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target simd firstprivate(argc, z) diff --git a/clang/test/OpenMP/target_simd_if_messages.cpp b/clang/test/OpenMP/target_simd_if_messages.cpp --- a/clang/test/OpenMP/target_simd_if_messages.cpp +++ b/clang/test/OpenMP/target_simd_if_messages.cpp @@ -34,7 +34,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -74,7 +74,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp target simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp target simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_simd_lastprivate_messages.cpp b/clang/test/OpenMP/target_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_simd_lastprivate_messages.cpp @@ -100,7 +100,7 @@ #pragma omp target simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target simd lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -180,7 +180,7 @@ #pragma omp target simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target simd lastprivate(argc) diff --git a/clang/test/OpenMP/target_simd_linear_messages.cpp b/clang/test/OpenMP/target_simd_linear_messages.cpp --- a/clang/test/OpenMP/target_simd_linear_messages.cpp +++ b/clang/test/OpenMP/target_simd_linear_messages.cpp @@ -155,7 +155,7 @@ #pragma omp target simd linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target simd linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target simd linear(argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -240,7 +240,7 @@ #pragma omp target simd linear(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target simd linear(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd linear((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target simd linear(argc, z) diff --git a/clang/test/OpenMP/target_simd_map_messages.cpp b/clang/test/OpenMP/target_simd_map_messages.cpp --- a/clang/test/OpenMP/target_simd_map_messages.cpp +++ b/clang/test/OpenMP/target_simd_map_messages.cpp @@ -124,7 +124,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target simd map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target simd map(argc) for (i = 0; i < argc; ++i) foo(); @@ -234,7 +234,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target simd map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target simd map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_simd_private_messages.cpp b/clang/test/OpenMP/target_simd_private_messages.cpp --- a/clang/test/OpenMP/target_simd_private_messages.cpp +++ b/clang/test/OpenMP/target_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp target simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -196,7 +196,7 @@ #pragma omp target simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target simd private(argc, z) diff --git a/clang/test/OpenMP/target_simd_reduction_messages.cpp b/clang/test/OpenMP/target_simd_reduction_messages.cpp --- a/clang/test/OpenMP/target_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/target_simd_reduction_messages.cpp @@ -264,7 +264,7 @@ #pragma omp target simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/target_simd_safelen_messages.cpp b/clang/test/OpenMP/target_simd_safelen_messages.cpp --- a/clang/test/OpenMP/target_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/target_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp target simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp target simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp target simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp target simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/target_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/target_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/target_simd_simdlen_messages.cpp @@ -95,7 +95,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} -#pragma omp target simd simdlen (foobool(1) > 0 ? 1 : 2) +#pragma omp target simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} diff --git a/clang/test/OpenMP/target_teams_device_messages.cpp b/clang/test/OpenMP/target_teams_device_messages.cpp --- a/clang/test/OpenMP/target_teams_device_messages.cpp +++ b/clang/test/OpenMP/target_teams_device_messages.cpp @@ -23,7 +23,7 @@ foo(); #pragma omp target teams device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target teams device (argc + argc + z) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_collapse_messages.cpp @@ -105,7 +105,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} -#pragma omp target teams distribute collapse (foobool(1) > 0 ? 1 : 2) +#pragma omp target teams distribute collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_device_messages.cpp b/clang/test/OpenMP/target_teams_distribute_device_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_device_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute device (argc + argc + z) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_dist_schedule_messages.cpp b/clang/test/OpenMP/target_teams_distribute_dist_schedule_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_dist_schedule_messages.cpp @@ -36,7 +36,7 @@ #pragma omp target teams distribute dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute dist_schedule (static), dist_schedule (static, 1+z) // expected-error {{directive '#pragma omp target teams distribute' cannot contain more than one 'dist_schedule' clause}} @@ -71,7 +71,7 @@ #pragma omp target teams distribute dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute dist_schedule (static), dist_schedule (static, z+1) // expected-error {{directive '#pragma omp target teams distribute' cannot contain more than one 'dist_schedule' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_firstprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_firstprivate_messages.cpp @@ -100,7 +100,7 @@ #pragma omp target teams distribute firstprivate (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute firstprivate (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_if_messages.cpp b/clang/test/OpenMP/target_teams_distribute_if_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_if_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_if_messages.cpp @@ -40,7 +40,7 @@ #pragma omp target teams distribute if (z+argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute' cannot contain more than one 'if' clause}} @@ -111,7 +111,7 @@ #pragma omp target teams distribute if (argc+z)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute' cannot contain more than one 'if' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_lastprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_lastprivate_messages.cpp @@ -98,7 +98,7 @@ #pragma omp target teams distribute lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute allocate(omp_thread_mem_alloc: argc) lastprivate(argc) // expected-warning {{allocator with the 'thread' trait access has unspecified behavior on 'target teams distribute' directive}} omp50-error {{allocator must be specified in the 'uses_allocators' clause}} @@ -172,7 +172,7 @@ #pragma omp target teams distribute lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_map_messages.cpp b/clang/test/OpenMP/target_teams_distribute_map_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_map_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_map_messages.cpp @@ -130,7 +130,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute map(argc) for (i = 0; i < argc; ++i) foo(); @@ -246,7 +246,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp b/clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp @@ -29,7 +29,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute num_teams(argc + argc + z) for (int i=0; i<100; i++) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams distribute num_teams (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute num_teams (argc + argc+z) diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_messages.cpp @@ -104,7 +104,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute parallel for', but found only 1}} -#pragma omp target teams distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute parallel for collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_device_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_device_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_device_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for device (argc+z)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for device (argc + argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_messages.cpp @@ -36,7 +36,7 @@ #pragma omp target teams distribute parallel for dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute parallel for dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute parallel for dist_schedule (static), dist_schedule (static, z+1) // expected-error {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'dist_schedule' clause}} @@ -71,7 +71,7 @@ #pragma omp target teams distribute parallel for dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute parallel for dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute parallel for dist_schedule (static), dist_schedule (static, 1+z) // expected-error {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'dist_schedule' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_messages.cpp @@ -99,7 +99,7 @@ #pragma omp target teams distribute parallel for firstprivate (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for firstprivate (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_if_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_if_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_if_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_if_messages.cpp @@ -34,7 +34,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -82,7 +82,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_messages.cpp @@ -101,7 +101,7 @@ #pragma omp target teams distribute parallel for lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute parallel for lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -178,7 +178,7 @@ #pragma omp target teams distribute parallel for lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for lastprivate(argc) diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp @@ -128,7 +128,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute parallel for map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for map(argc) for (i = 0; i < argc; ++i) foo(); @@ -243,7 +243,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute parallel for map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp @@ -29,7 +29,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute parallel for num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute parallel for num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute parallel for num_teams(argc + z) for (int i=0; i<100; i++) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams distribute parallel for num_teams (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute parallel for num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute parallel for num_teams (argc + z) diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_num_threads_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_num_threads_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_num_threads_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_num_threads_messages.cpp @@ -52,7 +52,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for num_threads (z - argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} +#pragma omp target teams distribute parallel for num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_private_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_private_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_private_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_private_messages.cpp @@ -78,7 +78,7 @@ #pragma omp target teams distribute parallel for private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute parallel for private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute parallel for private (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_messages.cpp @@ -214,7 +214,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target teams distribute parallel for reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for reduction(~ : argc) // expected-error {{expected unqualified-id}} for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_messages.cpp @@ -119,7 +119,7 @@ #pragma omp target teams distribute parallel for schedule (static, 2+2 + z)) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; -#pragma omp target teams distribute parallel for schedule (dynamic, foobool(1) > 0 ? 1 : 2) +#pragma omp target teams distribute parallel for schedule (dynamic, (foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp target teams distribute parallel for' cannot contain more than one 'schedule' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_shared_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_shared_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_shared_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_shared_messages.cpp @@ -71,7 +71,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for shared (argc) for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_aligned_messages.cpp @@ -132,7 +132,7 @@ for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? -#pragma omp target teams distribute parallel for simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute parallel for simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} @@ -205,7 +205,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams -#pragma omp distribute simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_messages.cpp @@ -104,7 +104,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute parallel for simd', but found only 1}} -#pragma omp target teams distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute parallel for simd collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_device_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_device_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_device_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for simd device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd device (argc + argc + z) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_messages.cpp @@ -36,7 +36,7 @@ #pragma omp target teams distribute parallel for simd dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute parallel for simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute parallel for simd dist_schedule (static), dist_schedule (static, z+1) // expected-error {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'dist_schedule' clause}} @@ -71,7 +71,7 @@ #pragma omp target teams distribute parallel for simd dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute parallel for simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute parallel for simd dist_schedule (static), dist_schedule (static, 1+z) // expected-error {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'dist_schedule' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_messages.cpp @@ -102,7 +102,7 @@ #pragma omp target teams distribute parallel for simd firstprivate (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for simd firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for simd firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd firstprivate (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_messages.cpp @@ -34,7 +34,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd if (k)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -94,7 +94,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd if (k)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_messages.cpp @@ -100,7 +100,7 @@ #pragma omp target teams distribute parallel for simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute parallel for simd lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -178,7 +178,7 @@ #pragma omp target teams distribute parallel for simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd lastprivate(argc) diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_linear_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_linear_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_linear_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_linear_messages.cpp @@ -155,7 +155,7 @@ #pragma omp target teams distribute parallel for simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} @@ -222,7 +222,7 @@ #pragma omp target teams distribute parallel for simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp @@ -130,7 +130,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute parallel for simd map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd map(argc) for (i = 0; i < argc; ++i) foo(); @@ -245,7 +245,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute parallel for simd map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_teams_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_teams_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_teams_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_teams_messages.cpp @@ -29,7 +29,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute parallel for simd num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute parallel for simd num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute parallel for simd num_teams(argc + argc/z) for (int i=0; i<100; i++) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams distribute parallel for simd num_teams (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute parallel for simd num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute parallel for simd num_teams (argc + argc-z) diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_threads_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_threads_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_threads_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_num_threads_messages.cpp @@ -52,7 +52,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd num_threads (k)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute parallel for simd num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} +#pragma omp target teams distribute parallel for simd num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute parallel for simd num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_messages.cpp @@ -78,7 +78,7 @@ #pragma omp target teams distribute parallel for simd private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp target teams distribute parallel for simd private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target teams distribute parallel for simd private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute parallel for simd private (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_messages.cpp @@ -215,7 +215,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target teams distribute parallel for simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd reduction(~ : argc) // expected-error {{expected unqualified-id}} for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_safelen_messages.cpp @@ -100,7 +100,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; -#pragma omp target teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_messages.cpp @@ -119,7 +119,7 @@ #pragma omp target teams distribute parallel for simd schedule (static, 2+2)) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; -#pragma omp target teams distribute parallel for simd schedule (dynamic, foobool(1) > 0 ? 1 : z) +#pragma omp target teams distribute parallel for simd schedule (dynamic, (foobool(1) > 0) ? 1 : z) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+2 2 {{directive '#pragma omp target teams distribute parallel for simd' cannot contain more than one 'schedule' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_shared_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_shared_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_shared_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_shared_messages.cpp @@ -71,7 +71,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); - #pragma omp target teams distribute parallel for simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target teams distribute parallel for simd shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd shared (argc) for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_simdlen_messages.cpp @@ -99,7 +99,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; -#pragma omp target teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_thread_limit_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_thread_limit_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_thread_limit_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_thread_limit_messages.cpp @@ -29,7 +29,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for simd thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd thread_limit(argc + argc + z) for (int j=0; j<100; j++) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams distribute parallel for simd thread_limit (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for simd' are ignored}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for simd thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for simd thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for simd thread_limit (argc + argc-z) diff --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_thread_limit_messages.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_thread_limit_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_thread_limit_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_thread_limit_messages.cpp @@ -36,7 +36,7 @@ #pragma omp target teams distribute parallel for thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for thread_limit(argc + argc + z) @@ -77,7 +77,7 @@ #pragma omp target teams distribute parallel for thread_limit (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute parallel for' are ignored}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute parallel for thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute parallel for thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute parallel for thread_limit (argc -z + argc) diff --git a/clang/test/OpenMP/target_teams_distribute_private_messages.cpp b/clang/test/OpenMP/target_teams_distribute_private_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_private_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_private_messages.cpp @@ -78,7 +78,7 @@ #pragma omp target teams distribute private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute private (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_reduction_messages.cpp b/clang/test/OpenMP/target_teams_distribute_reduction_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_reduction_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_reduction_messages.cpp @@ -219,7 +219,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target teams distribute reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute reduction(~ : argc) // expected-error {{expected unqualified-id}} for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_shared_messages.cpp b/clang/test/OpenMP/target_teams_distribute_shared_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_shared_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_shared_messages.cpp @@ -71,7 +71,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute shared (argc) for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_aligned_messages.cpp @@ -132,7 +132,7 @@ for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? -#pragma omp target teams distribute simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} @@ -205,7 +205,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams -#pragma omp distribute simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams diff --git a/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_collapse_messages.cpp @@ -104,7 +104,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp target teams distribute simd', but found only 1}} -#pragma omp target teams distribute simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute simd collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_simd_device_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_device_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_device_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_device_messages.cpp @@ -23,7 +23,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute simd device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd device (argc + argc + z) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_messages.cpp @@ -36,7 +36,7 @@ #pragma omp target teams distribute simd dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute simd dist_schedule (static), dist_schedule (static, z+1) // expected-error {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'dist_schedule' clause}} @@ -71,7 +71,7 @@ #pragma omp target teams distribute simd dist_schedule (argc)) // expected-error {{expected 'static' in OpenMP clause 'dist_schedule'}} expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp target teams distribute simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target teams distribute simd dist_schedule (static), dist_schedule (static, 1+z) // expected-error {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'dist_schedule' clause}} diff --git a/clang/test/OpenMP/target_teams_distribute_simd_firstprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_firstprivate_messages.cpp @@ -103,7 +103,7 @@ #pragma omp target teams distribute simd firstprivate (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute simd firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd firstprivate (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_simd_if_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_if_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_if_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_if_messages.cpp @@ -33,7 +33,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -77,7 +77,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams distribute simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams distribute simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_simd_lastprivate_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_lastprivate_messages.cpp @@ -100,7 +100,7 @@ #pragma omp target teams distribute simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute simd lastprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -178,7 +178,7 @@ #pragma omp target teams distribute simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (i = 0; i < argc; ++i) foo(); -#pragma omp target teams distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd lastprivate(argc) diff --git a/clang/test/OpenMP/target_teams_distribute_simd_linear_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_linear_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_linear_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_linear_messages.cpp @@ -155,7 +155,7 @@ #pragma omp target teams distribute simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} @@ -222,7 +222,7 @@ #pragma omp target teams distribute simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} diff --git a/clang/test/OpenMP/target_teams_distribute_simd_map_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_map_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_map_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_map_messages.cpp @@ -130,7 +130,7 @@ // ge50-error@+3 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute simd map(tofrom \ - : argc > 0 ? x : y) + : (argc > 0) ? x : y) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd map(argc) for (i = 0; i < argc; ++i) foo(); @@ -246,7 +246,7 @@ // ge50-error@+3 {{expected addressable lvalue in 'map' clause}} // lt50-error@+2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target teams distribute simd map(tofrom \ - : argc > 0 ? argv[1] : argv[2]) + : (argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target teams distribute simd map(argc) for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_simd_num_teams_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_num_teams_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_num_teams_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_num_teams_messages.cpp @@ -29,7 +29,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute simd num_teams(argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute simd num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute simd num_teams(argc + argc) for (int i=0; i<100; i++) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams distribute simd num_teams (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (int i=0; i<100; i++) foo(); -#pragma omp target teams distribute simd num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target teams distribute simd num_teams (argc + argc) diff --git a/clang/test/OpenMP/target_teams_distribute_simd_private_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_private_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_private_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_private_messages.cpp @@ -82,7 +82,7 @@ #pragma omp target teams distribute simd private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp target teams distribute simd private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams distribute simd private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target teams distribute simd private (argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/target_teams_distribute_simd_reduction_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_reduction_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_reduction_messages.cpp @@ -215,7 +215,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target teams distribute simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd reduction(~ : argc) // expected-error {{expected unqualified-id}} for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_safelen_messages.cpp @@ -100,7 +100,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; -#pragma omp target teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_simd_shared_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_shared_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_shared_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_shared_messages.cpp @@ -71,7 +71,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); - #pragma omp target teams distribute simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp target teams distribute simd shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd shared (argc, z) for (int j=0; j<100; j++) foo(); diff --git a/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_simdlen_messages.cpp @@ -100,7 +100,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; -#pragma omp target teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp target teams distribute simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/target_teams_distribute_simd_thread_limit_messages.cpp b/clang/test/OpenMP/target_teams_distribute_simd_thread_limit_messages.cpp --- a/clang/test/OpenMP/target_teams_distribute_simd_thread_limit_messages.cpp +++ b/clang/test/OpenMP/target_teams_distribute_simd_thread_limit_messages.cpp @@ -29,7 +29,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute simd thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd thread_limit(argc + argc + z) for (int j=0; j<100; j++) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams distribute simd thread_limit (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams distribute simd' are ignored}} for (int j=0; j<100; j++) foo(); -#pragma omp target teams distribute simd thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams distribute simd thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target teams distribute simd thread_limit (argc + argc - z) diff --git a/clang/test/OpenMP/target_teams_firstprivate_messages.cpp b/clang/test/OpenMP/target_teams_firstprivate_messages.cpp --- a/clang/test/OpenMP/target_teams_firstprivate_messages.cpp +++ b/clang/test/OpenMP/target_teams_firstprivate_messages.cpp @@ -94,7 +94,7 @@ foo(); #pragma omp target teams firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp target teams firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target teams firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} foo(); diff --git a/clang/test/OpenMP/target_teams_if_messages.cpp b/clang/test/OpenMP/target_teams_if_messages.cpp --- a/clang/test/OpenMP/target_teams_if_messages.cpp +++ b/clang/test/OpenMP/target_teams_if_messages.cpp @@ -34,7 +34,7 @@ foo(); #pragma omp target teams if (z)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams if ((argc > 0) ? argv[1] : argv[2]) foo(); #pragma omp target teams if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams' cannot contain more than one 'if' clause}} foo(); @@ -74,7 +74,7 @@ foo(); #pragma omp target teams if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target teams if ((argc > 0) ? argv[1] : argv[2]) foo(); #pragma omp target teams if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target teams' cannot contain more than one 'if' clause}} foo(); diff --git a/clang/test/OpenMP/target_teams_map_messages.cpp b/clang/test/OpenMP/target_teams_map_messages.cpp --- a/clang/test/OpenMP/target_teams_map_messages.cpp +++ b/clang/test/OpenMP/target_teams_map_messages.cpp @@ -445,7 +445,7 @@ #pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}} // ge50-error@+2 2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+1 2 {{expected expression containing only member accesses and/or array sections based on named variables}} -#pragma omp target data map(tofrom: argc > 0 ? x : y) +#pragma omp target data map(tofrom: (argc > 0) ? x : y) #pragma omp target data map(argc) #pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}} @@ -528,7 +528,7 @@ #pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}} // ge50-error@+2 {{expected addressable lvalue in 'map' clause}} // lt50-error@+1 {{expected expression containing only member accesses and/or array sections based on named variables}} -#pragma omp target data map(tofrom: argc > 0 ? argv[1] : argv[2]) +#pragma omp target data map(tofrom: (argc > 0) ? argv[1] : argv[2]) #pragma omp target data map(argc) #pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}} #pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} diff --git a/clang/test/OpenMP/target_teams_num_teams_messages.cpp b/clang/test/OpenMP/target_teams_num_teams_messages.cpp --- a/clang/test/OpenMP/target_teams_num_teams_messages.cpp +++ b/clang/test/OpenMP/target_teams_num_teams_messages.cpp @@ -29,7 +29,7 @@ foo(); #pragma omp target teams num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target teams num_teams(argc + argc + z) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams num_teams (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target teams num_teams (argc + argc*z) diff --git a/clang/test/OpenMP/target_teams_private_messages.cpp b/clang/test/OpenMP/target_teams_private_messages.cpp --- a/clang/test/OpenMP/target_teams_private_messages.cpp +++ b/clang/test/OpenMP/target_teams_private_messages.cpp @@ -79,7 +79,7 @@ foo(); #pragma omp target teams private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp target teams private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target teams private (argc argv) // expected-error {{expected ',' or ')' in 'private' clause}} foo(); diff --git a/clang/test/OpenMP/target_teams_reduction_messages.cpp b/clang/test/OpenMP/target_teams_reduction_messages.cpp --- a/clang/test/OpenMP/target_teams_reduction_messages.cpp +++ b/clang/test/OpenMP/target_teams_reduction_messages.cpp @@ -230,7 +230,7 @@ foo(); #pragma omp target teams reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp target teams reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp target teams reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp target teams reduction(~ : argc) // expected-error {{expected unqualified-id}} foo(); diff --git a/clang/test/OpenMP/target_teams_shared_messages.cpp b/clang/test/OpenMP/target_teams_shared_messages.cpp --- a/clang/test/OpenMP/target_teams_shared_messages.cpp +++ b/clang/test/OpenMP/target_teams_shared_messages.cpp @@ -71,7 +71,7 @@ foo(); #pragma omp target teams shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp target teams shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp target teams shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target teams shared (argc) foo(); diff --git a/clang/test/OpenMP/target_teams_thread_limit_messages.cpp b/clang/test/OpenMP/target_teams_thread_limit_messages.cpp --- a/clang/test/OpenMP/target_teams_thread_limit_messages.cpp +++ b/clang/test/OpenMP/target_teams_thread_limit_messages.cpp @@ -29,7 +29,7 @@ foo(); #pragma omp target teams thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target teams thread_limit(argc + argc + z) foo(); @@ -64,7 +64,7 @@ #pragma omp target teams thread_limit (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target teams' are ignored}} foo(); -#pragma omp target teams thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target teams thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target teams thread_limit (argc + argc/ z) diff --git a/clang/test/OpenMP/target_update_device_messages.cpp b/clang/test/OpenMP/target_update_device_messages.cpp --- a/clang/test/OpenMP/target_update_device_messages.cpp +++ b/clang/test/OpenMP/target_update_device_messages.cpp @@ -19,7 +19,7 @@ #pragma omp target update to(i) device () // expected-error {{expected expression}} #pragma omp target update to(i) device (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target update to(i) device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target update' are ignored}} -#pragma omp target update from(i) device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target update from(i) device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} #pragma omp target update from(i) device (argc + z) #pragma omp target update from(i) device (device_num: argc + z) // expected-error {{use of undeclared identifier 'device_num'}} expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target update from(i) device (argc), device (argc+1) // expected-error {{directive '#pragma omp target update' cannot contain more than one 'device' clause}} @@ -35,7 +35,7 @@ #pragma omp target update to(j) device () // expected-error {{expected expression}} #pragma omp target update from(j) device (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target update to(j) device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target update' are ignored}} -#pragma omp target update from(j) device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp target update from(j) device ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} #pragma omp target update to(j) device (z + argc) #pragma omp target update from(j) device (argc), device (argc+1) // expected-error {{directive '#pragma omp target update' cannot contain more than one 'device' clause}} #pragma omp target update to(j) device (S1) // expected-error {{'S1' does not refer to a value}} diff --git a/clang/test/OpenMP/target_update_from_messages.cpp b/clang/test/OpenMP/target_update_from_messages.cpp --- a/clang/test/OpenMP/target_update_from_messages.cpp +++ b/clang/test/OpenMP/target_update_from_messages.cpp @@ -112,7 +112,7 @@ #pragma omp target update from(S2::S2sc) #pragma omp target update from(from) #pragma omp target update from(y x) // expected-error {{expected ',' or ')' in 'from' clause}} -#pragma omp target update from(argc > 0 ? x : y) // le50-error 2 {{expected addressable lvalue in 'from' clause}} le45-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} +#pragma omp target update from((argc > 0) ? x : y) // le50-error 2 {{expected addressable lvalue in 'from' clause}} le45-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target update from(S1) // expected-error {{'S1' does not refer to a value}}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} #pragma omp target update from(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} @@ -169,7 +169,7 @@ #pragma omp target update from(S2::S2sc) #pragma omp target update from(from) #pragma omp target update from(y x) // expected-error {{expected ',' or ')' in 'from' clause}} -#pragma omp target update from(argc > 0 ? x : y) // le50-error {{expected addressable lvalue in 'from' clause}} le45-error {{expected expression containing only member accesses and/or array sections based on named variables}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} +#pragma omp target update from((argc > 0) ? x : y) // le50-error {{expected addressable lvalue in 'from' clause}} le45-error {{expected expression containing only member accesses and/or array sections based on named variables}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} #pragma omp target update from(S1) // expected-error {{'S1' does not refer to a value}}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} #pragma omp target update from(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} #pragma omp target update from(ba) diff --git a/clang/test/OpenMP/target_update_if_messages.cpp b/clang/test/OpenMP/target_update_if_messages.cpp --- a/clang/test/OpenMP/target_update_if_messages.cpp +++ b/clang/test/OpenMP/target_update_if_messages.cpp @@ -29,7 +29,7 @@ #pragma omp target update to(n) if () // expected-error {{expected expression}} #pragma omp target update from(n) if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target update to(n) if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target update' are ignored}} -#pragma omp target update from(n) if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target update from(n) if ((argc > 0) ? argv[1] : argv[2]) #pragma omp target update to(n) if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target update' cannot contain more than one 'if' clause}} #pragma omp target update from(n) if (S) // expected-error {{'S' does not refer to a value}} #pragma omp target update to(n) if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -52,7 +52,7 @@ #pragma omp target update to(m) if () // expected-error {{expected expression}} #pragma omp target update from(m) if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp target update to(m) if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target update' are ignored}} -#pragma omp target update from(m) if (argc > 0 ? argv[1] : argv[2]) +#pragma omp target update from(m) if ((argc > 0) ? argv[1] : argv[2]) #pragma omp target update to(m) if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp target update' cannot contain more than one 'if' clause}} #pragma omp target update from(m) if (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp target update to(m) if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} diff --git a/clang/test/OpenMP/target_update_to_messages.cpp b/clang/test/OpenMP/target_update_to_messages.cpp --- a/clang/test/OpenMP/target_update_to_messages.cpp +++ b/clang/test/OpenMP/target_update_to_messages.cpp @@ -120,7 +120,7 @@ #pragma omp target update to(S2::S2sc) #pragma omp target update to(to) #pragma omp target update to(y x) // expected-error {{expected ',' or ')' in 'to' clause}} -#pragma omp target update to(argc > 0 ? x : y) // le50-error 2 {{expected addressable lvalue in 'to' clause}} le45-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} +#pragma omp target update to((argc > 0) ? x : y) // le50-error 2 {{expected addressable lvalue in 'to' clause}} le45-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} #pragma omp target update to(S1) // expected-error {{'S1' does not refer to a value}}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} #pragma omp target update to(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} #pragma omp target update to(ba) @@ -175,7 +175,7 @@ #pragma omp target update to(S2::S2sc) #pragma omp target update to(to) #pragma omp target update to(y x) // expected-error {{expected ',' or ')' in 'to' clause}} -#pragma omp target update to(argc > 0 ? x : y) // le50-error {{expected addressable lvalue in 'to' clause}} le45-error {{expected expression containing only member accesses and/or array sections based on named variables}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} +#pragma omp target update to((argc > 0) ? x : y) // le50-error {{expected addressable lvalue in 'to' clause}} le45-error {{expected expression containing only member accesses and/or array sections based on named variables}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} #pragma omp target update to(S1) // expected-error {{'S1' does not refer to a value}}} expected-error {{expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'}} #pragma omp target update to(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} #pragma omp target update to(ba) diff --git a/clang/test/OpenMP/target_uses_allocators_messages.cpp b/clang/test/OpenMP/target_uses_allocators_messages.cpp --- a/clang/test/OpenMP/target_uses_allocators_messages.cpp +++ b/clang/test/OpenMP/target_uses_allocators_messages.cpp @@ -30,7 +30,7 @@ {} #pragma omp target uses_allocators(argc, // expected-error {{expected ')'}} expected-error {{expected variable of the 'omp_allocator_handle_t' type, not 'int'}} expected-note {{to match this '('}} {} -#pragma omp target uses_allocators(argc > 0 ? omp_default_mem_alloc : omp_thread_mem_alloc) // expected-error {{expected ',' or ')' in 'uses_allocators' clause}} expected-error {{expected unqualified-id}} expected-error {{expected variable of the 'omp_allocator_handle_t' type, not 'int'}} +#pragma omp target uses_allocators((argc > 0) ? omp_default_mem_alloc : omp_thread_mem_alloc) // expected-error {{expected ',' or ')' in 'uses_allocators' clause}} expected-error {{expected unqualified-id}} expected-error {{expected variable of the 'omp_allocator_handle_t' type, not 'int'}} {} #pragma omp target uses_allocators(omp_default_mem_alloc, omp_large_cap_mem_alloc, omp_const_mem_alloc, omp_high_bw_mem_alloc, omp_low_lat_mem_alloc, omp_cgroup_mem_alloc, omp_pteam_mem_alloc, omp_thread_mem_alloc) {} @@ -42,7 +42,7 @@ {} #pragma omp target uses_allocators(my_alloc()) // expected-error {{expected unqualified-id}} expected-error {{non-predefined allocator must have traits specified}} {} -#pragma omp target uses_allocators(my_alloc(argc > 0 ? argv[0] : argv{1})) // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected constant sized array of 'omp_alloctrait_t' elements, not 'int'}} +#pragma omp target uses_allocators(my_alloc((argc > 0) ? argv[0] : argv{1})) // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected constant sized array of 'omp_alloctrait_t' elements, not 'int'}} {} #pragma omp target uses_allocators(my_alloc(ptraits)) // expected-error {{expected constant sized array of 'omp_alloctrait_t' elements, not 'omp_alloctrait_t *'}} {} diff --git a/clang/test/OpenMP/task_final_messages.cpp b/clang/test/OpenMP/task_final_messages.cpp --- a/clang/test/OpenMP/task_final_messages.cpp +++ b/clang/test/OpenMP/task_final_messages.cpp @@ -19,7 +19,7 @@ #pragma omp task final () // expected-error {{expected expression}} #pragma omp task final (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task final (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}} - #pragma omp task final (argc > 0 ? argv[1] : argv[2]) + #pragma omp task final ((argc > 0) ? argv[1] : argv[2]) #pragma omp task final (foobool(argc)), final (true) // expected-error {{directive '#pragma omp task' cannot contain more than one 'final' clause}} #pragma omp task final (S) // expected-error {{'S' does not refer to a value}} #pragma omp task final (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -37,7 +37,7 @@ #pragma omp task final () // expected-error {{expected expression}} #pragma omp task final (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task final (z+argc)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}} - #pragma omp task final (argc > 0 ? argv[1] : argv[2]) + #pragma omp task final ((argc > 0) ? argv[1] : argv[2]) #pragma omp task final (foobool(argc)), final (true) // expected-error {{directive '#pragma omp task' cannot contain more than one 'final' clause}} #pragma omp task final (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp task final (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} diff --git a/clang/test/OpenMP/task_firstprivate_messages.cpp b/clang/test/OpenMP/task_firstprivate_messages.cpp --- a/clang/test/OpenMP/task_firstprivate_messages.cpp +++ b/clang/test/OpenMP/task_firstprivate_messages.cpp @@ -108,7 +108,7 @@ #pragma omp task firstprivate() // expected-error {{expected expression}} #pragma omp task firstprivate(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} -#pragma omp task firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp task firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp task firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} #pragma omp task firstprivate(S1) // expected-error {{'S1' does not refer to a value}} #pragma omp task firstprivate(a, b, c, d, f) // expected-error {{firstprivate variable with incomplete type 'S1'}} diff --git a/clang/test/OpenMP/task_if_messages.cpp b/clang/test/OpenMP/task_if_messages.cpp --- a/clang/test/OpenMP/task_if_messages.cpp +++ b/clang/test/OpenMP/task_if_messages.cpp @@ -29,7 +29,7 @@ #pragma omp task if () // expected-error {{expected expression}} #pragma omp task if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}} - #pragma omp task if (argc > 0 ? argv[1] : argv[2]) + #pragma omp task if ((argc > 0) ? argv[1] : argv[2]) #pragma omp task if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp task' cannot contain more than one 'if' clause}} #pragma omp task if (S) // expected-error {{'S' does not refer to a value}} #pragma omp task if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -53,7 +53,7 @@ #pragma omp task if () // expected-error {{expected expression}} #pragma omp task if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}} - #pragma omp task if (argc > 0 ? argv[1] : argv[2]) + #pragma omp task if ((argc > 0) ? argv[1] : argv[2]) #pragma omp task if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp task' cannot contain more than one 'if' clause}} #pragma omp task if (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp task if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}} diff --git a/clang/test/OpenMP/task_in_reduction_message.cpp b/clang/test/OpenMP/task_in_reduction_message.cpp --- a/clang/test/OpenMP/task_in_reduction_message.cpp +++ b/clang/test/OpenMP/task_in_reduction_message.cpp @@ -259,7 +259,7 @@ #pragma omp task in_reduction(| : argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} foo(); } -#pragma omp task in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp task in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp task in_reduction(~ : argc) // expected-error {{expected unqualified-id}} foo(); diff --git a/clang/test/OpenMP/task_priority_messages.cpp b/clang/test/OpenMP/task_priority_messages.cpp --- a/clang/test/OpenMP/task_priority_messages.cpp +++ b/clang/test/OpenMP/task_priority_messages.cpp @@ -19,7 +19,7 @@ #pragma omp task priority () // expected-error {{expected expression}} #pragma omp task priority (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}} - #pragma omp task priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp task priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) #pragma omp task priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp task' cannot contain more than one 'priority' clause}} #pragma omp task priority (S) // expected-error {{'S' does not refer to a value}} #pragma omp task priority (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -37,7 +37,7 @@ #pragma omp task priority () // expected-error {{expected expression}} #pragma omp task priority (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}} - #pragma omp task priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp task priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) #pragma omp task priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp task' cannot contain more than one 'priority' clause}} #pragma omp task priority (S1) // expected-error {{'S1' does not refer to a value}} #pragma omp task priority (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}} diff --git a/clang/test/OpenMP/task_private_messages.cpp b/clang/test/OpenMP/task_private_messages.cpp --- a/clang/test/OpenMP/task_private_messages.cpp +++ b/clang/test/OpenMP/task_private_messages.cpp @@ -83,7 +83,7 @@ #pragma omp task private() // expected-error {{expected expression}} #pragma omp task private(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} #pragma omp task private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} -#pragma omp task private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp task private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} #pragma omp task private(argc argv) // expected-error {{expected ',' or ')' in 'private' clause}} #pragma omp task private(S1) // expected-error {{'S1' does not refer to a value}} #pragma omp task private(z, a, b, c, d, f) // expected-error {{a private variable with incomplete type 'S1'}} expected-error 1 {{const-qualified variable without mutable fields cannot be private}} expected-error 2 {{const-qualified variable cannot be private}} diff --git a/clang/test/OpenMP/task_shared_messages.cpp b/clang/test/OpenMP/task_shared_messages.cpp --- a/clang/test/OpenMP/task_shared_messages.cpp +++ b/clang/test/OpenMP/task_shared_messages.cpp @@ -75,7 +75,7 @@ foo(); #pragma omp task shared(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp task shared(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp task shared((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp task shared(argc, z) foo(); diff --git a/clang/test/OpenMP/taskgroup_task_reduction_messages.cpp b/clang/test/OpenMP/taskgroup_task_reduction_messages.cpp --- a/clang/test/OpenMP/taskgroup_task_reduction_messages.cpp +++ b/clang/test/OpenMP/taskgroup_task_reduction_messages.cpp @@ -202,7 +202,7 @@ foo(); #pragma omp taskgroup task_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); -#pragma omp taskgroup task_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp taskgroup task_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp taskgroup task_reduction(~ : argc) // expected-error {{expected unqualified-id}} foo(); diff --git a/clang/test/OpenMP/taskloop_collapse_messages.cpp b/clang/test/OpenMP/taskloop_collapse_messages.cpp --- a/clang/test/OpenMP/taskloop_collapse_messages.cpp +++ b/clang/test/OpenMP/taskloop_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp taskloop collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp taskloop', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp taskloop collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp taskloop collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp taskloop' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/taskloop_final_messages.cpp b/clang/test/OpenMP/taskloop_final_messages.cpp --- a/clang/test/OpenMP/taskloop_final_messages.cpp +++ b/clang/test/OpenMP/taskloop_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop final(argc > 0 ? argv[1] : argv[2] + z) +#pragma omp taskloop final((argc > 0) ? argv[1] : argv[2] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp taskloop final(argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop final(argc > 0 ? argv[1] : argv[2] - z) +#pragma omp taskloop final((argc > 0) ? argv[1] : argv[2] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/taskloop_firstprivate_messages.cpp b/clang/test/OpenMP/taskloop_firstprivate_messages.cpp --- a/clang/test/OpenMP/taskloop_firstprivate_messages.cpp +++ b/clang/test/OpenMP/taskloop_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp taskloop firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/taskloop_grainsize_messages.cpp b/clang/test/OpenMP/taskloop_grainsize_messages.cpp --- a/clang/test/OpenMP/taskloop_grainsize_messages.cpp +++ b/clang/test/OpenMP/taskloop_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp taskloop grainsize (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop grainsize (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp taskloop grainsize ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/taskloop_in_reduction_messages.cpp b/clang/test/OpenMP/taskloop_in_reduction_messages.cpp --- a/clang/test/OpenMP/taskloop_in_reduction_messages.cpp +++ b/clang/test/OpenMP/taskloop_in_reduction_messages.cpp @@ -303,7 +303,7 @@ #pragma omp taskloop in_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp taskloop in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop in_reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/taskloop_lastprivate_messages.cpp b/clang/test/OpenMP/taskloop_lastprivate_messages.cpp --- a/clang/test/OpenMP/taskloop_lastprivate_messages.cpp +++ b/clang/test/OpenMP/taskloop_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/taskloop_num_tasks_messages.cpp b/clang/test/OpenMP/taskloop_num_tasks_messages.cpp --- a/clang/test/OpenMP/taskloop_num_tasks_messages.cpp +++ b/clang/test/OpenMP/taskloop_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp taskloop num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp taskloop num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/taskloop_priority_messages.cpp b/clang/test/OpenMP/taskloop_priority_messages.cpp --- a/clang/test/OpenMP/taskloop_priority_messages.cpp +++ b/clang/test/OpenMP/taskloop_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp taskloop priority ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/taskloop_private_messages.cpp b/clang/test/OpenMP/taskloop_private_messages.cpp --- a/clang/test/OpenMP/taskloop_private_messages.cpp +++ b/clang/test/OpenMP/taskloop_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop private(argc) diff --git a/clang/test/OpenMP/taskloop_reduction_messages.cpp b/clang/test/OpenMP/taskloop_reduction_messages.cpp --- a/clang/test/OpenMP/taskloop_reduction_messages.cpp +++ b/clang/test/OpenMP/taskloop_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp taskloop reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp taskloop reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp b/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp @@ -123,7 +123,7 @@ #pragma omp taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (I k = 0; k < argc; ++k) ++k; // FIXME: Should argc really be a pointer? - #pragma omp taskloop simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp taskloop simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}} for (I k = 0; k < argc; ++k) ++k; @@ -181,7 +181,7 @@ // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp taskloop simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp taskloop simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp taskloop simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+1 {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}} #pragma omp taskloop simd aligned (argc) diff --git a/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp b/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp @@ -71,7 +71,7 @@ #pragma omp taskloop simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} expected-note {{as specified in 'collapse' clause}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp taskloop simd', but found only 1}} // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp taskloop simd collapse (foobool(1) > 0 ? 1 : 2) + #pragma omp taskloop simd collapse ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'collapse' clause}} diff --git a/clang/test/OpenMP/taskloop_simd_final_messages.cpp b/clang/test/OpenMP/taskloop_simd_final_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_final_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_final_messages.cpp @@ -29,7 +29,7 @@ #pragma omp taskloop simd final(argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop simd final(argc > 0 ? argv[1] : argv[2]) +#pragma omp taskloop simd final((argc > 0) ? argv[1] : argv[2]) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'final' clause}} @@ -68,7 +68,7 @@ #pragma omp taskloop simd final(z+argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop simd final(argc > 0 ? argv[1] : argv[2]) +#pragma omp taskloop simd final((argc > 0) ? argv[1] : argv[2]) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd final(foobool(argc)), final(true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'final' clause}} diff --git a/clang/test/OpenMP/taskloop_simd_firstprivate_messages.cpp b/clang/test/OpenMP/taskloop_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_firstprivate_messages.cpp @@ -107,7 +107,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -213,7 +213,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp taskloop simd firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop simd firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/taskloop_simd_grainsize_messages.cpp b/clang/test/OpenMP/taskloop_simd_grainsize_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_grainsize_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_grainsize_messages.cpp @@ -31,7 +31,7 @@ #pragma omp taskloop simd grainsize (z + argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'grainsize' clause}} @@ -73,7 +73,7 @@ #pragma omp taskloop simd grainsize (argc+z)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop simd grainsize (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp taskloop simd grainsize ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd grainsize (foobool(argc)), grainsize (true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'grainsize' clause}} diff --git a/clang/test/OpenMP/taskloop_simd_in_reduction_messages.cpp b/clang/test/OpenMP/taskloop_simd_in_reduction_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_in_reduction_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_in_reduction_messages.cpp @@ -303,7 +303,7 @@ #pragma omp taskloop simd in_reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop simd in_reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp taskloop simd in_reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd in_reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/taskloop_simd_lastprivate_messages.cpp b/clang/test/OpenMP/taskloop_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_lastprivate_messages.cpp @@ -104,7 +104,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel -#pragma omp taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel @@ -202,7 +202,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp parallel -#pragma omp taskloop simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel diff --git a/clang/test/OpenMP/taskloop_simd_linear_messages.cpp b/clang/test/OpenMP/taskloop_simd_linear_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_linear_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_linear_messages.cpp @@ -143,7 +143,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd linear (val(argc, // expected-error {{expected expression}} expected-error 2 {{expected ')'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd linear (argc : 5) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; @@ -232,7 +232,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd linear (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; - #pragma omp taskloop simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp taskloop simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd linear (argc, z) for (int k = 0; k < argc; ++k) ++k; diff --git a/clang/test/OpenMP/taskloop_simd_num_tasks_messages.cpp b/clang/test/OpenMP/taskloop_simd_num_tasks_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_num_tasks_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_num_tasks_messages.cpp @@ -29,7 +29,7 @@ #pragma omp taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] + z) + #pragma omp taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] + z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'num_tasks' clause}} @@ -71,7 +71,7 @@ #pragma omp taskloop simd num_tasks (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop simd num_tasks (argc > 0 ? argv[1][0] : argv[2][argc] - z) + #pragma omp taskloop simd num_tasks ((argc > 0) ? argv[1][0] : argv[2][argc] - z) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd num_tasks (foobool(argc)), num_tasks (true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'num_tasks' clause}} diff --git a/clang/test/OpenMP/taskloop_simd_priority_messages.cpp b/clang/test/OpenMP/taskloop_simd_priority_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_priority_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_priority_messages.cpp @@ -29,7 +29,7 @@ #pragma omp taskloop simd priority (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'priority' clause}} @@ -68,7 +68,7 @@ #pragma omp taskloop simd priority (argc + z)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 0; i < 10; ++i) foo(); - #pragma omp taskloop simd priority (argc > 0 ? argv[1][0] : argv[2][argc]) + #pragma omp taskloop simd priority ((argc > 0) ? argv[1][0] : argv[2][argc]) for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp taskloop simd' cannot contain more than one 'priority' clause}} diff --git a/clang/test/OpenMP/taskloop_simd_private_messages.cpp b/clang/test/OpenMP/taskloop_simd_private_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_private_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_private_messages.cpp @@ -124,7 +124,7 @@ #pragma omp taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd private(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} @@ -206,7 +206,7 @@ #pragma omp taskloop simd private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp taskloop simd private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp taskloop simd private((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp taskloop simd private(argc, z) diff --git a/clang/test/OpenMP/taskloop_simd_reduction_messages.cpp b/clang/test/OpenMP/taskloop_simd_reduction_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_reduction_messages.cpp @@ -273,7 +273,7 @@ #pragma omp taskloop simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int i = 0; i < 10; ++i) foo(); -#pragma omp taskloop simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp taskloop simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int i = 0; i < 10; ++i) foo(); #pragma omp taskloop simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp b/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp taskloop simd safelen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp taskloop simd safelen (foobool(1) > 0 ? 1 : 2) + #pragma omp taskloop simd safelen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'safelen' clause}} diff --git a/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp b/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp @@ -69,7 +69,7 @@ #pragma omp taskloop simd simdlen (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop simd' are ignored}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+1 {{integral constant expression}} expected-note@+1 0+{{constant expression}} - #pragma omp taskloop simd simdlen (foobool(1) > 0 ? 1 : 2) + #pragma omp taskloop simd simdlen ((foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}} // expected-error@+2 2 {{directive '#pragma omp taskloop simd' cannot contain more than one 'simdlen' clause}} diff --git a/clang/test/OpenMP/teams_distribute_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_collapse_messages.cpp --- a/clang/test/OpenMP/teams_distribute_collapse_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_collapse_messages.cpp @@ -123,7 +123,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp teams distribute', but found only 1}} #pragma omp target -#pragma omp teams distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_dist_schedule_messages.cpp b/clang/test/OpenMP/teams_distribute_dist_schedule_messages.cpp --- a/clang/test/OpenMP/teams_distribute_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_dist_schedule_messages.cpp @@ -43,7 +43,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target @@ -88,7 +88,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_firstprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_firstprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_firstprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_firstprivate_messages.cpp @@ -96,7 +96,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_lastprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_lastprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_lastprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_lastprivate_messages.cpp @@ -94,7 +94,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -188,7 +188,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_num_teams_messages.cpp b/clang/test/OpenMP/teams_distribute_num_teams_messages.cpp --- a/clang/test/OpenMP/teams_distribute_num_teams_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_num_teams_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute' are ignored}} for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target #pragma omp teams distribute num_teams(argc + argc + z) @@ -84,7 +84,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_collapse_messages.cpp @@ -122,7 +122,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp teams distribute parallel for', but found only 1}} #pragma omp target -#pragma omp teams distribute parallel for collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute parallel for collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_copyin_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_copyin_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_copyin_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_copyin_messages.cpp @@ -83,7 +83,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for copyin((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_messages.cpp @@ -43,7 +43,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target @@ -88,7 +88,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_messages.cpp @@ -96,7 +96,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_if_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_if_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_if_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_if_messages.cpp @@ -41,7 +41,7 @@ #pragma omp teams distribute parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for if (argc > 0 ? argv[1] : argv[2]) +#pragma omp teams distribute parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams distribute parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp teams distribute parallel for' cannot contain more than one 'if' clause}} @@ -104,7 +104,7 @@ #pragma omp teams distribute parallel for if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for if (argc > 0 ? argv[1] : argv[2]) +#pragma omp teams distribute parallel for if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams distribute parallel for if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp teams distribute parallel for' cannot contain more than one 'if' clause}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_messages.cpp @@ -94,7 +94,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -188,7 +188,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_num_teams_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_num_teams_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_num_teams_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_num_teams_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute parallel for num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for' are ignored}} for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute parallel for num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target #pragma omp teams distribute parallel for num_teams(argc + argc + z) @@ -84,7 +84,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute parallel for num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_private_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_private_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_private_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_private_messages.cpp @@ -74,7 +74,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target - #pragma omp teams distribute parallel for private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute parallel for private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_reduction_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_reduction_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_reduction_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_reduction_messages.cpp @@ -245,7 +245,7 @@ #pragma omp teams distribute parallel for reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute parallel for reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp teams distribute parallel for reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute parallel for reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_schedule_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_schedule_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_schedule_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_schedule_messages.cpp @@ -144,7 +144,7 @@ for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; #pragma omp target -#pragma omp teams distribute parallel for schedule (dynamic, foobool(1) > 0 ? 1 : 2) +#pragma omp teams distribute parallel for schedule (dynamic, (foobool(1) > 0) ? 1 : 2) for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error@+3 2 {{directive '#pragma omp teams distribute parallel for' cannot contain more than one 'schedule' clause}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_shared_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_shared_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_shared_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_shared_messages.cpp @@ -77,7 +77,7 @@ #pragma omp teams distribute parallel for shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target - #pragma omp teams distribute parallel for shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute parallel for shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute parallel for shared (argc) diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp @@ -151,7 +151,7 @@ // FIXME: Should argc really be a pointer? #pragma omp target -#pragma omp teams distribute parallel for simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target @@ -240,7 +240,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_messages.cpp @@ -122,7 +122,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp teams distribute parallel for simd', but found only 1}} #pragma omp target -#pragma omp teams distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute parallel for simd collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_messages.cpp @@ -43,7 +43,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target @@ -88,7 +88,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_messages.cpp @@ -97,7 +97,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for simd firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_if_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_if_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_if_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_if_messages.cpp @@ -40,7 +40,7 @@ #pragma omp teams distribute parallel for simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp teams distribute parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams distribute parallel for simd if (foobool(argc)*z), if (true) // expected-error {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'if' clause}} @@ -103,7 +103,7 @@ #pragma omp teams distribute parallel for simd if (argc/z)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd if (argc > 0 ? argv[1] : argv[2]) +#pragma omp teams distribute parallel for simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams distribute parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'if' clause}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_messages.cpp @@ -94,7 +94,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -188,7 +188,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_linear_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_linear_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_linear_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_linear_messages.cpp @@ -165,7 +165,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+2 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} @@ -245,7 +245,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute parallel for simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute parallel for simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+2 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute parallel for simd num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for simd' are ignored}} for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for simd num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target #pragma omp teams distribute parallel for simd num_teams(argc + k) @@ -84,7 +84,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for simd num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages_attr.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages_attr.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages_attr.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages_attr.cpp @@ -22,7 +22,7 @@ for (int i=0; i<100; i++) foo(); [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams()))]] // expected-error {{expected expression}} for (int i=0; i<100; i++) foo(); - [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams(argc > 0 ? a[1] : a[2])))]] // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams((argc > 0) ? a[1] : a[2])))]] // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams(argc + k)))]] for (int i=0; i<100; i++) foo(); @@ -48,7 +48,7 @@ [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams ()))]] // expected-error {{expected expression}} for (int i=0; i<100; i++) foo(); - [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams (argc > 0 ? argv[1] : argv[2])))]] // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} + [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams ((argc > 0) ? argv[1] : argv[2])))]] // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); [[omp::sequence(directive(target), directive(teams distribute parallel for simd num_teams (argc + k)))]] diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_messages.cpp @@ -69,7 +69,7 @@ #pragma omp teams distribute parallel for simd num_threads (k)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for simd' are ignored}} for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd num_threads (argc > 0 ? argv[1] : argv[2]) // expected-error {{integral }} +#pragma omp teams distribute parallel for simd num_threads ((argc > 0) ? argv[1] : argv[2]) // expected-error {{integral }} for (i = 0; i < argc; ++i) foo(); #pragma omp target #pragma omp teams distribute parallel for simd num_threads (foobool(argc)), num_threads (true), num_threads (-5) // expected-error 2 {{directive '#pragma omp teams distribute parallel for simd' cannot contain more than one 'num_threads' clause}} expected-error {{argument to 'num_threads' clause must be a strictly positive integer value}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_messages.cpp @@ -74,7 +74,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target - #pragma omp teams distribute parallel for simd private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute parallel for simd private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_messages.cpp @@ -245,7 +245,7 @@ #pragma omp teams distribute parallel for simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp teams distribute parallel for simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute parallel for simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_safelen_messages.cpp @@ -118,7 +118,7 @@ #pragma omp target -#pragma omp teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_shared_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_shared_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_shared_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_shared_messages.cpp @@ -77,7 +77,7 @@ #pragma omp teams distribute parallel for simd shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target - #pragma omp teams distribute parallel for simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute parallel for simd shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute parallel for simd shared (argc) diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_simdlen_messages.cpp @@ -118,7 +118,7 @@ #pragma omp target -#pragma omp teams distribute parallel for simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute parallel for simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_thread_limit_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_thread_limit_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_thread_limit_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_thread_limit_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute parallel for simd thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for simd' are ignored}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for simd thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute parallel for simd thread_limit(argc + z) @@ -84,7 +84,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute parallel for simd thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for simd thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_thread_limit_messages.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_thread_limit_messages.cpp --- a/clang/test/OpenMP/teams_distribute_parallel_for_thread_limit_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_thread_limit_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute parallel for thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute parallel for' are ignored}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute parallel for thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute parallel for thread_limit(argc + argc + z) @@ -84,7 +84,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute parallel for thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute parallel for thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_private_messages.cpp b/clang/test/OpenMP/teams_distribute_private_messages.cpp --- a/clang/test/OpenMP/teams_distribute_private_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_private_messages.cpp @@ -74,7 +74,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target - #pragma omp teams distribute private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_reduction_messages.cpp b/clang/test/OpenMP/teams_distribute_reduction_messages.cpp --- a/clang/test/OpenMP/teams_distribute_reduction_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_reduction_messages.cpp @@ -251,7 +251,7 @@ #pragma omp teams distribute reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp teams distribute reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/teams_distribute_shared_messages.cpp b/clang/test/OpenMP/teams_distribute_shared_messages.cpp --- a/clang/test/OpenMP/teams_distribute_shared_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_shared_messages.cpp @@ -77,7 +77,7 @@ #pragma omp teams distribute shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target - #pragma omp teams distribute shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute shared (argc) diff --git a/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp @@ -152,7 +152,7 @@ // FIXME: Should argc really be a pointer? #pragma omp target -#pragma omp teams distribute simd aligned (*argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute simd aligned ((*argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (I k = 0; k < argc; ++k) ++k; #pragma omp target @@ -241,7 +241,7 @@ #pragma omp target #pragma omp teams -#pragma omp distribute simd aligned (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp distribute simd aligned ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_collapse_messages.cpp @@ -122,7 +122,7 @@ argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp teams distribute simd', but found only 1}} #pragma omp target -#pragma omp teams distribute simd collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute simd collapse ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_simd_dist_schedule_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_dist_schedule_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_dist_schedule_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_dist_schedule_messages.cpp @@ -43,7 +43,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error2 {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target @@ -88,7 +88,7 @@ for (int i = 0; i < 10; ++i) foo(); #pragma omp target -#pragma omp teams distribute simd dist_schedule (static, argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute simd dist_schedule (static, (argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i = 0; i < 10; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_simd_firstprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_firstprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_firstprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_firstprivate_messages.cpp @@ -98,7 +98,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute simd firstprivate (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute simd firstprivate ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_simd_if_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_if_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_if_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_if_messages.cpp @@ -32,7 +32,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp teams distribute simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp teams distribute simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp teams distribute simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp teams distribute simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp teams distribute simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); @@ -72,7 +72,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp teams distribute simd if (argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute simd' are ignored}} for (i = 0; i < argc; ++i) foo(); - #pragma omp teams distribute simd if (argc > 0 ? argv[1] : argv[2]) + #pragma omp teams distribute simd if ((argc > 0) ? argv[1] : argv[2]) for (i = 0; i < argc; ++i) foo(); #pragma omp teams distribute simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp teams distribute simd' cannot contain more than one 'if' clause}} for (i = 0; i < argc; ++i) foo(); diff --git a/clang/test/OpenMP/teams_distribute_simd_lastprivate_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_lastprivate_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_lastprivate_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_lastprivate_messages.cpp @@ -94,7 +94,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target @@ -188,7 +188,7 @@ for (i = 0; i < argc; ++i) foo(); #pragma omp target -#pragma omp teams distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute simd lastprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (i = 0; i < argc; ++i) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_simd_linear_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_linear_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_linear_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_linear_messages.cpp @@ -165,7 +165,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+2 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} @@ -245,7 +245,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target -#pragma omp teams distribute simd linear (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams distribute simd linear ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; // expected-error@+2 {{only loop iteration variables are allowed in 'linear' clause in distribute directives}} diff --git a/clang/test/OpenMP/teams_distribute_simd_num_teams_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_num_teams_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_num_teams_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_num_teams_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute simd num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute simd' are ignored}} for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute simd num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute simd num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target #pragma omp teams distribute simd num_teams(argc + argc) @@ -84,7 +84,7 @@ for (int i=0; i<100; i++) foo(); #pragma omp target -#pragma omp teams distribute simd num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute simd num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int i=0; i<100; i++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_simd_private_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_private_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_private_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_private_messages.cpp @@ -75,7 +75,7 @@ for (int k = 0; k < argc; ++k) ++k; #pragma omp target - #pragma omp teams distribute simd private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute simd private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int k = 0; k < argc; ++k) ++k; #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_simd_reduction_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_reduction_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_reduction_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_reduction_messages.cpp @@ -245,7 +245,7 @@ #pragma omp teams distribute simd reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute simd reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp teams distribute simd reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute simd reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_safelen_messages.cpp @@ -118,7 +118,7 @@ #pragma omp target -#pragma omp teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_simd_shared_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_shared_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_shared_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_shared_messages.cpp @@ -77,7 +77,7 @@ #pragma omp teams distribute simd shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} for (int j=0; j<100; j++) foo(); #pragma omp target - #pragma omp teams distribute simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams distribute simd shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute simd shared (argc) diff --git a/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_simdlen_messages.cpp @@ -118,7 +118,7 @@ #pragma omp target -#pragma omp teams distribute simd safelen (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} +#pragma omp teams distribute simd safelen ((foobool(1) > 0) ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}} for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; diff --git a/clang/test/OpenMP/teams_distribute_simd_thread_limit_messages.cpp b/clang/test/OpenMP/teams_distribute_simd_thread_limit_messages.cpp --- a/clang/test/OpenMP/teams_distribute_simd_thread_limit_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_simd_thread_limit_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute simd thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute simd' are ignored}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute simd thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute simd thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute simd thread_limit(argc + argc + z) @@ -84,7 +84,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute simd thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute simd thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_distribute_thread_limit_messages.cpp b/clang/test/OpenMP/teams_distribute_thread_limit_messages.cpp --- a/clang/test/OpenMP/teams_distribute_thread_limit_messages.cpp +++ b/clang/test/OpenMP/teams_distribute_thread_limit_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams distribute thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams distribute' are ignored}} for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target #pragma omp teams distribute thread_limit(argc + argc + z) @@ -84,7 +84,7 @@ for (int j=0; j<100; j++) foo(); #pragma omp target -#pragma omp teams distribute thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams distribute thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} for (int j=0; j<100; j++) foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_firstprivate_messages.cpp b/clang/test/OpenMP/teams_firstprivate_messages.cpp --- a/clang/test/OpenMP/teams_firstprivate_messages.cpp +++ b/clang/test/OpenMP/teams_firstprivate_messages.cpp @@ -91,7 +91,7 @@ #pragma omp teams firstprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); #pragma omp target -#pragma omp teams firstprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} +#pragma omp teams firstprivate((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target #pragma omp teams firstprivate(argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv) // expected-error {{expected '(' after 'allocate'}} expected-error 2 {{expected expression}} expected-error 2 {{expected ')'}} expected-error {{use of undeclared identifier 'omp_default'}} expected-note 2 {{to match this '('}} diff --git a/clang/test/OpenMP/teams_num_teams_messages.cpp b/clang/test/OpenMP/teams_num_teams_messages.cpp --- a/clang/test/OpenMP/teams_num_teams_messages.cpp +++ b/clang/test/OpenMP/teams_num_teams_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams num_teams(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams' are ignored}} foo(); #pragma omp target -#pragma omp teams num_teams(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams num_teams((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target #pragma omp teams num_teams(argc + argc+z) @@ -84,7 +84,7 @@ foo(); #pragma omp target -#pragma omp teams num_teams (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams num_teams ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target diff --git a/clang/test/OpenMP/teams_private_messages.cpp b/clang/test/OpenMP/teams_private_messages.cpp --- a/clang/test/OpenMP/teams_private_messages.cpp +++ b/clang/test/OpenMP/teams_private_messages.cpp @@ -75,7 +75,7 @@ #pragma omp teams private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); #pragma omp target - #pragma omp teams private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams private ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target #pragma omp teams private (argc argv) // expected-error {{expected ',' or ')' in 'private' clause}} diff --git a/clang/test/OpenMP/teams_reduction_messages.cpp b/clang/test/OpenMP/teams_reduction_messages.cpp --- a/clang/test/OpenMP/teams_reduction_messages.cpp +++ b/clang/test/OpenMP/teams_reduction_messages.cpp @@ -264,7 +264,7 @@ #pragma omp teams reduction(| : argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); #pragma omp target -#pragma omp teams reduction(|| : argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} +#pragma omp teams reduction(|| : (argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name, array element or array section}} foo(); #pragma omp target #pragma omp teams reduction(~ : argc) // expected-error {{expected unqualified-id}} diff --git a/clang/test/OpenMP/teams_shared_messages.cpp b/clang/test/OpenMP/teams_shared_messages.cpp --- a/clang/test/OpenMP/teams_shared_messages.cpp +++ b/clang/test/OpenMP/teams_shared_messages.cpp @@ -76,7 +76,7 @@ #pragma omp teams shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} foo(); #pragma omp target - #pragma omp teams shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} + #pragma omp teams shared ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expected variable name}} foo(); #pragma omp target #pragma omp teams shared (argc) diff --git a/clang/test/OpenMP/teams_thread_limit_messages.cpp b/clang/test/OpenMP/teams_thread_limit_messages.cpp --- a/clang/test/OpenMP/teams_thread_limit_messages.cpp +++ b/clang/test/OpenMP/teams_thread_limit_messages.cpp @@ -37,7 +37,7 @@ #pragma omp teams thread_limit(argc)) // expected-warning {{extra tokens at the end of '#pragma omp teams' are ignored}} foo(); #pragma omp target -#pragma omp teams thread_limit(argc > 0 ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams thread_limit((argc > 0) ? a[1] : a[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target #pragma omp teams thread_limit(argc + argc + z) @@ -84,7 +84,7 @@ foo(); #pragma omp target -#pragma omp teams thread_limit (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} +#pragma omp teams thread_limit ((argc > 0) ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} foo(); #pragma omp target diff --git a/clang/test/Parser/cxx-attributes.cpp b/clang/test/Parser/cxx-attributes.cpp --- a/clang/test/Parser/cxx-attributes.cpp +++ b/clang/test/Parser/cxx-attributes.cpp @@ -21,7 +21,7 @@ namespace PR17666 { const int A = 1; typedef int __attribute__((__aligned__(A))) T1; - int check1[__alignof__(T1) == 1 ? 1 : -1]; + int check1[(__alignof__(T1) == 1) ? 1 : -1]; typedef int __attribute__((aligned(int(1)))) T1; typedef int __attribute__((aligned(int))) T2; // expected-error {{expected '(' for function-style cast}} diff --git a/clang/test/Parser/cxx2a-init-statement.cpp b/clang/test/Parser/cxx2a-init-statement.cpp --- a/clang/test/Parser/cxx2a-init-statement.cpp +++ b/clang/test/Parser/cxx2a-init-statement.cpp @@ -15,7 +15,7 @@ int A<0>::*arr2[3]; for (int n = 5; int A::*x : arr2) {} - for (int i = 0; int x = i < 2 ? 1 : 0; i++) {} + for (int i = 0; int x = ((i < 2) ? 1 : 0); i++) {} F (*arr3[3])(int); for (int n = 5; F (*p)(int n) : arr3) {} diff --git a/clang/test/Sema/128bitint.c b/clang/test/Sema/128bitint.c --- a/clang/test/Sema/128bitint.c +++ b/clang/test/Sema/128bitint.c @@ -7,9 +7,9 @@ typedef int i128 __attribute__((__mode__(TI))); typedef unsigned u128 __attribute__((__mode__(TI))); -int a[((i128)-1 ^ (i128)-2) == 1 ? 1 : -1]; -int a[(u128)-1 > 1LL ? 1 : -1]; -int a[__SIZEOF_INT128__ == 16 ? 1 : -1]; +int a[(((i128)-1 ^ (i128)-2) == 1) ? 1 : -1]; +int a[((u128)-1 > 1LL) ? 1 : -1]; +int a[(__SIZEOF_INT128__ == 16) ? 1 : -1]; // PR5435 __uint128_t b = (__uint128_t)-1; diff --git a/clang/test/Sema/align-arm-apcs.c b/clang/test/Sema/align-arm-apcs.c --- a/clang/test/Sema/align-arm-apcs.c +++ b/clang/test/Sema/align-arm-apcs.c @@ -2,4 +2,4 @@ // expected-no-diagnostics struct s0 { double f0; int f1; }; -char chk0[__alignof__(struct s0) == 4 ? 1 : -1]; +char chk0[(__alignof__(struct s0) == 4) ? 1 : -1]; diff --git a/clang/test/Sema/align-systemz.c b/clang/test/Sema/align-systemz.c --- a/clang/test/Sema/align-systemz.c +++ b/clang/test/Sema/align-systemz.c @@ -12,6 +12,6 @@ char c; struct test s; -int chk1[__alignof__(c) == 1 ? 1 : -1]; -int chk2[__alignof__(s) == 1 ? 1 : -1]; +int chk1[(__alignof__(c) == 1) ? 1 : -1]; +int chk2[(__alignof__(s) == 1) ? 1 : -1]; diff --git a/clang/test/Sema/align-x86-64.c b/clang/test/Sema/align-x86-64.c --- a/clang/test/Sema/align-x86-64.c +++ b/clang/test/Sema/align-x86-64.c @@ -12,4 +12,4 @@ {{0xcddd6e04c0592104ULL, 0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}} }; -short chk1[sizeof(ten2mk192M) == 80 ? 1 : -1]; +short chk1[(sizeof(ten2mk192M) == 80) ? 1 : -1]; diff --git a/clang/test/Sema/array-init.c b/clang/test/Sema/array-init.c --- a/clang/test/Sema/array-init.c +++ b/clang/test/Sema/array-init.c @@ -105,7 +105,7 @@ { 2, 3 }, { 4, 5, 6 } }; - int q_sizecheck[(sizeof(q) / sizeof(short [3][2])) == 3? 1 : -1]; + int q_sizecheck[((sizeof(q) / sizeof(short [3][2])) == 3) ? 1 : -1]; } unsigned char asso_values[] = { 34 }; @@ -139,12 +139,12 @@ void testTypedef(void) { AryT a = { 1, 2 }, b = { 3, 4, 5 }; - int a_sizecheck[(sizeof(a) / sizeof(int)) == 2? 1 : -1]; - int b_sizecheck[(sizeof(b) / sizeof(int)) == 3? 1 : -1]; + int a_sizecheck[((sizeof(a) / sizeof(int)) == 2) ? 1 : -1]; + int b_sizecheck[((sizeof(b) / sizeof(int)) == 3) ? 1 : -1]; } static char const xx[] = "test"; -int xx_sizecheck[(sizeof(xx) / sizeof(char)) == 5? 1 : -1]; +int xx_sizecheck[((sizeof(xx) / sizeof(char)) == 5) ? 1 : -1]; static char const yy[5] = "test"; static char const zz[3] = "test"; // expected-warning{{initializer-string for char array is too long}} @@ -155,7 +155,7 @@ void charArrays(void) { static char const test[] = "test"; - int test_sizecheck[(sizeof(test) / sizeof(char)) == 5? 1 : -1]; + int test_sizecheck[((sizeof(test) / sizeof(char)) == 5) ? 1 : -1]; static char const test2[] = { "weird stuff" }; static char const test3[] = { "test", "excess stuff" }; // expected-warning{{excess elements in char array initializer}} #pragma clang diagnostic push @@ -166,7 +166,7 @@ char* cp[] = { "Hello" }; char c[] = { "Hello" }; - int l[sizeof(c) == 6 ? 1 : -1]; + int l[(sizeof(c) == 6) ? 1 : -1]; int i[] = { "Hello "}; // expected-error{{incompatible pointer to integer conversion initializing 'int' with an expression of type 'char[7]'}} char c2[] = { "Hello", "Good bye" }; //expected-warning{{excess elements in char array initializer}} @@ -188,11 +188,11 @@ float r1[10] = {{7}}; //expected-warning{{braces around scalar initializer}} float r2[] = {{8}}; //expected-warning{{braces around scalar initializer}} char r3[][5] = {1,2,3,4,5,6}; -int r3_sizecheck[(sizeof(r3) / sizeof(char[5])) == 2? 1 : -1]; -char r3_2[sizeof r3 == 10 ? 1 : -1]; +int r3_sizecheck[((sizeof(r3) / sizeof(char[5])) == 2) ? 1 : -1]; +char r3_2[(sizeof r3 == 10) ? 1 : -1]; float r4[1][2] = {1,{2},3,4}; //expected-warning{{braces around scalar initializer}} expected-warning{{excess elements in array initializer}} char r5[][5] = {"aa", "bbb", "ccccc"}; -char r6[sizeof r5 == 15 ? 1 : -1]; +char r6[(sizeof r5 == 15) ? 1 : -1]; const char r7[] = "zxcv"; char r8[5] = "5char"; char r9[5] = "6chars"; //expected-warning{{initializer-string for char array is too long}} @@ -205,7 +205,7 @@ struct s2 {struct s1 c;} t2 = { t1 }; // The following is a less than great diagnostic (though it's on par with EDG). struct s1 t3[] = {t1, t1, "abc", 0}; //expected-error{{incompatible pointer to integer conversion initializing 'char' with an expression of type 'char[4]'}} -int t4[sizeof t3 == 6 ? 1 : -1]; + int t4[(sizeof t3 == 6) ? 1 : -1]; } struct foo { int z; } w; int bar (void) { diff --git a/clang/test/Sema/attr-aligned.c b/clang/test/Sema/attr-aligned.c --- a/clang/test/Sema/attr-aligned.c +++ b/clang/test/Sema/attr-aligned.c @@ -10,7 +10,7 @@ // PR3254 short g0[3] __attribute__((aligned)); -short g0_chk[__alignof__(g0) == 16 ? 1 : -1]; +short g0_chk[(__alignof__(g0) == 16) ? 1 : -1]; // typedef char ueber_aligned_char __attribute__((aligned(8))); @@ -21,42 +21,42 @@ char a = 0; -char a0[__alignof__(ueber_aligned_char) == 8? 1 : -1] = { 0 }; -char a1[__alignof__(struct struct_with_ueber_char) == 8? 1 : -1] = { 0 }; -char a2[__alignof__(a) == 1? : -1] = { 0 }; -char a3[sizeof(a) == 1? : -1] = { 0 }; +char a0[(__alignof__(ueber_aligned_char) == 8) ? 1 : -1] = { 0 }; +char a1[(__alignof__(struct struct_with_ueber_char) == 8) ? 1 : -1] = { 0 }; +char a2[(__alignof__(a) == 1) ? : -1] = { 0 }; +char a3[(sizeof(a) == 1) ? : -1] = { 0 }; typedef long long __attribute__((aligned(1))) underaligned_longlong; -char a4[__alignof__(underaligned_longlong) == 1 ?: -1] = {0}; +char a4[(__alignof__(underaligned_longlong) == 1) ?: -1] = {0}; typedef long long __attribute__((aligned(1))) underaligned_complex_longlong; -char a5[__alignof__(underaligned_complex_longlong) == 1 ?: -1] = {0}; +char a5[(__alignof__(underaligned_complex_longlong) == 1) ?: -1] = {0}; // rdar://problem/8335865 int b __attribute__((aligned(2))); char b1[__alignof__(b) == 2 ?: -1] = {0}; struct C { int member __attribute__((aligned(2))); } c; -char c1[__alignof__(c) == 4 ?: -1] = {0}; -char c2[__alignof__(c.member) == 4 ?: -1] = {0}; +char c1[(__alignof__(c) == 4) ?: -1] = {0}; +char c2[(__alignof__(c.member) == 4) ?: -1] = {0}; struct D { int member __attribute__((aligned(2))) __attribute__((packed)); } d; -char d1[__alignof__(d) == 2 ?: -1] = {0}; -char d2[__alignof__(d.member) == 2 ?: -1] = {0}; +char d1[(__alignof__(d) == 2) ?: -1] = {0}; +char d2[(__alignof__(d.member) == 2) ?: -1] = {0}; struct E { int member __attribute__((aligned(2))); } __attribute__((packed)); struct E e; -char e1[__alignof__(e) == 2 ?: -1] = {0}; -char e2[__alignof__(e.member) == 2 ?: -1] = {0}; +char e1[(__alignof__(e) == 2) ?: -1] = {0}; +char e2[(__alignof__(e.member) == 2) ?: -1] = {0}; typedef struct { char c[16]; } S; typedef S overaligned_struct __attribute__((aligned(16))); typedef overaligned_struct array_with_overaligned_struct[11]; typedef char array_with_align_attr[11] __attribute__((aligned(16))); -char f0[__alignof__(array_with_overaligned_struct) == 16 ? 1 : -1] = { 0 }; -char f1[__alignof__(array_with_align_attr) == 16 ? 1 : -1] = { 0 }; +char f0[(__alignof__(array_with_overaligned_struct) == 16) ? 1 : -1] = { 0 }; +char f1[(__alignof__(array_with_align_attr) == 16) ? 1 : -1] = { 0 }; array_with_overaligned_struct F2; -char f2[__alignof__(F2) == 16 ? 1 : -1] = { 0 }; +char f2[(__alignof__(F2) == 16) ? 1 : -1] = { 0 }; array_with_align_attr F3; -char f3[__alignof__(F3) == 16 ? 1 : -1] = { 0 }; +char f3[(__alignof__(F3) == 16) ? 1 : -1] = { 0 }; diff --git a/clang/test/Sema/attr-mode.c b/clang/test/Sema/attr-mode.c --- a/clang/test/Sema/attr-mode.c +++ b/clang/test/Sema/attr-mode.c @@ -16,12 +16,12 @@ // RUN: -verify %s typedef int i16_1 __attribute((mode(HI))); -int i16_1_test[sizeof(i16_1) == 2 ? 1 : -1]; +int i16_1_test[(sizeof(i16_1) == 2) ? 1 : -1]; typedef int i16_2 __attribute((__mode__(__HI__))); -int i16_2_test[sizeof(i16_1) == 2 ? 1 : -1]; +int i16_2_test[(sizeof(i16_1) == 2) ? 1 : -1]; typedef float f64 __attribute((mode(DF))); -int f64_test[sizeof(f64) == 8 ? 1 : -1]; +int f64_test[(sizeof(f64) == 8) ? 1 : -1]; typedef int invalid_1 __attribute((mode)); // expected-error{{'mode' attribute takes one argument}} typedef int invalid_2 __attribute((mode())); // expected-error{{'mode' attribute takes one argument}} @@ -38,12 +38,12 @@ enum invalid_enum { A1 __attribute__((mode(QI))) }; // expected-error{{'mode' attribute only applies to}} typedef _Complex float c16a __attribute((mode(HC))); -int c16a_test[sizeof(c16a) == 4 ? 1 : -1]; +int c16a_test[(sizeof(c16a) == 4) ? 1 : -1]; typedef _Complex double c16b __attribute((mode(HC))); -int c16b_test[sizeof(c16b) == 4 ? 1 : -1]; +int c16b_test[(sizeof(c16b) == 4) ? 1 : -1]; typedef _Complex double c32 __attribute((mode(SC))); -int c32_test[sizeof(c32) == 8 ? 1 : -1]; +int c32_test[(sizeof(c32) == 8) ? 1 : -1]; typedef _Complex float c64 __attribute((mode(DC))); #if !defined(__powerpc__) && !defined(__mips__) // Note, 'XC' mode is illegal for PPC64 and MIPS machines. @@ -80,9 +80,9 @@ #elif TEST_64BIT_X86 #ifdef __ILP32__ typedef unsigned int gcc_word __attribute__((mode(word))); -int foo[sizeof(gcc_word) == 8 ? 1 : -1]; +int foo[(sizeof(gcc_word) == 8) ? 1 : -1]; typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word))); -int foo[sizeof(gcc_unwind_word) == 8 ? 1 : -1]; +int foo[(sizeof(gcc_unwind_word) == 8) ? 1 : -1]; void test_long_to_i64(long long* y) { f_i64_arg(y); } void test_long_to_ui64(unsigned long long* y) { f_ui64_arg(y); } #else @@ -114,13 +114,13 @@ void test_KCtype(cf128 *a) { f_f128_complex_arg(a); } #elif TEST_MIPS_32 typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word))); -int foo[sizeof(gcc_unwind_word) == 4 ? 1 : -1]; +int foo[(sizeof(gcc_unwind_word) == 4) ? 1 : -1]; #elif TEST_MIPS_N32 typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word))); -int foo[sizeof(gcc_unwind_word) == 8 ? 1 : -1]; +int foo[(sizeof(gcc_unwind_word) == 8) ? 1 : -1]; #elif TEST_MIPS_64 typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word))); -int foo[sizeof(gcc_unwind_word) == 8 ? 1 : -1]; +int foo[(sizeof(gcc_unwind_word) == 8) ? 1 : -1]; #else #error Unknown test architecture. #endif diff --git a/clang/test/Sema/bitfield-layout.c b/clang/test/Sema/bitfield-layout.c --- a/clang/test/Sema/bitfield-layout.c +++ b/clang/test/Sema/bitfield-layout.c @@ -7,11 +7,11 @@ #include #define CHECK_SIZE(kind, name, size) \ - extern int name##_1[sizeof(kind name) == size ? 1 : -1]; + extern int name##_1[(sizeof(kind name) == size) ? 1 : -1]; #define CHECK_ALIGN(kind, name, size) \ - extern int name##_2[__alignof(kind name) == size ? 1 : -1]; + extern int name##_2[(__alignof(kind name) == size) ? 1 : -1]; #define CHECK_OFFSET(kind, name, member, offset) \ - extern int name##_3[offsetof(kind name, member) == offset ? 1 : -1]; + extern int name##_3[(offsetof(kind name, member) == offset) ? 1 : -1]; // Zero-width bit-fields struct a {char x; int : 0; char y;}; diff --git a/clang/test/Sema/bitfield-layout_1.c b/clang/test/Sema/bitfield-layout_1.c --- a/clang/test/Sema/bitfield-layout_1.c +++ b/clang/test/Sema/bitfield-layout_1.c @@ -5,7 +5,7 @@ // expected-no-diagnostics #define CHECK_SIZE(name, size) \ - extern int name##_1[sizeof(name) == size ? 1 : -1]; + extern int name##_1[(sizeof(name) == size) ? 1 : -1]; struct __attribute__((packed)) { diff --git a/clang/test/Sema/builtin-classify-type.c b/clang/test/Sema/builtin-classify-type.c --- a/clang/test/Sema/builtin-classify-type.c +++ b/clang/test/Sema/builtin-classify-type.c @@ -51,25 +51,25 @@ _Complex int complex_i; _Complex double complex_d; - int a1[__builtin_classify_type(f()) == void_type_class ? 1 : -1]; - int a2[__builtin_classify_type(i) == integer_type_class ? 1 : -1]; - int a3[__builtin_classify_type(c) == integer_type_class ? 1 : -1]; - int a4[__builtin_classify_type(enum_obj) == integer_type_class ? 1 : -1]; - int a5[__builtin_classify_type(p) == pointer_type_class ? 1 : -1]; - int a6[__builtin_classify_type(d) == real_type_class ? 1 : -1]; - int a7[__builtin_classify_type(cc) == complex_type_class ? 1 : -1]; - int a8[__builtin_classify_type(f) == pointer_type_class ? 1 : -1]; - int a0[__builtin_classify_type(s_obj) == record_type_class ? 1 : -1]; - int a10[__builtin_classify_type(u_obj) == union_type_class ? 1 : -1]; - int a11[__builtin_classify_type(arr) == pointer_type_class ? 1 : -1]; - int a12[__builtin_classify_type("abc") == pointer_type_class ? 1 : -1]; - int a13[__builtin_classify_type(block) == no_type_class ? 1 : -1]; - int a14[__builtin_classify_type(vec) == no_type_class ? 1 : -1]; - int a15[__builtin_classify_type(evec) == no_type_class ? 1 : -1]; - int a16[__builtin_classify_type(atomic_i) == integer_type_class ? 1 : -1]; - int a17[__builtin_classify_type(atomic_d) == real_type_class ? 1 : -1]; - int a18[__builtin_classify_type(complex_i) == complex_type_class ? 1 : -1]; - int a19[__builtin_classify_type(complex_d) == complex_type_class ? 1 : -1]; + int a1[(__builtin_classify_type(f()) == void_type_class) ? 1 : -1]; + int a2[(__builtin_classify_type(i) == integer_type_class) ? 1 : -1]; + int a3[(__builtin_classify_type(c) == integer_type_class) ? 1 : -1]; + int a4[(__builtin_classify_type(enum_obj) == integer_type_class) ? 1 : -1]; + int a5[(__builtin_classify_type(p) == pointer_type_class) ? 1 : -1]; + int a6[(__builtin_classify_type(d) == real_type_class) ? 1 : -1]; + int a7[(__builtin_classify_type(cc) == complex_type_class) ? 1 : -1]; + int a8[(__builtin_classify_type(f) == pointer_type_class) ? 1 : -1]; + int a0[(__builtin_classify_type(s_obj) == record_type_class) ? 1 : -1]; + int a10[(__builtin_classify_type(u_obj) == union_type_class) ? 1 : -1]; + int a11[(__builtin_classify_type(arr) == pointer_type_class) ? 1 : -1]; + int a12[(__builtin_classify_type("abc") == pointer_type_class) ? 1 : -1]; + int a13[(__builtin_classify_type(block) == no_type_class) ? 1 : -1]; + int a14[(__builtin_classify_type(vec) == no_type_class) ? 1 : -1]; + int a15[(__builtin_classify_type(evec) == no_type_class) ? 1 : -1]; + int a16[(__builtin_classify_type(atomic_i) == integer_type_class) ? 1 : -1]; + int a17[(__builtin_classify_type(atomic_d) == real_type_class) ? 1 : -1]; + int a18[(__builtin_classify_type(complex_i) == complex_type_class) ? 1 : -1]; + int a19[(__builtin_classify_type(complex_d) == complex_type_class) ? 1 : -1]; } extern int (^p)(void); diff --git a/clang/test/Sema/compare.c b/clang/test/Sema/compare.c --- a/clang/test/Sema/compare.c +++ b/clang/test/Sema/compare.c @@ -196,7 +196,7 @@ ((signed char) a < (unsigned char) 0x80000) + // We should be able to avoid warning about this. - (b != (a < 4 ? 1 : 2)) + + (b != ((a < 4) ? 1 : 2)) + 10 ; @@ -265,7 +265,7 @@ void test3(void) { unsigned short x, y; unsigned int z; - if ((x > y ? x : y) > z) + if (((x > y) ? x : y) > z) (void) 0; } @@ -301,7 +301,7 @@ int test6(unsigned i, unsigned power) { unsigned x = (i < (1 << power) ? i : 0); - return x != 3 ? 1 << power : i; + return (x != 3) ? 1 << power : i; } // enum >= (enum)0 comparison should not generate any warnings diff --git a/clang/test/Sema/complex-promotion.c b/clang/test/Sema/complex-promotion.c --- a/clang/test/Sema/complex-promotion.c +++ b/clang/test/Sema/complex-promotion.c @@ -3,14 +3,14 @@ float a; -int b[__builtin_classify_type(a + 1i) == 9 ? 1 : -1]; -int c[__builtin_classify_type(1i + a) == 9 ? 1 : -1]; +int b[(__builtin_classify_type(a + 1i) == 9) ? 1 : -1]; +int c[(__builtin_classify_type(1i + a) == 9) ? 1 : -1]; double d; __typeof__ (d + 1i) e; -int f[sizeof(e) == 2 * sizeof(double) ? 1 : -1]; +int f[(sizeof(e) == 2 * sizeof(double)) ? 1 : -1]; int g; -int h[__builtin_classify_type(g + 1.0i) == 9 ? 1 : -1]; -int i[__builtin_classify_type(1.0i + a) == 9 ? 1 : -1]; +int h[(__builtin_classify_type(g + 1.0i) == 9) ? 1 : -1]; +int i[(__builtin_classify_type(1.0i + a) == 9) ? 1 : -1]; diff --git a/clang/test/Sema/conditional.c b/clang/test/Sema/conditional.c --- a/clang/test/Sema/conditional.c +++ b/clang/test/Sema/conditional.c @@ -1,6 +1,6 @@ // RUN: %clang_cc1 %s -fsyntax-only -verify -const char* test1 = 1 ? "i" : 1 == 1 ? "v" : "r"; +const char* test1 = 1 ? "i" : ((1 == 1) ? "v" : "r"); void _efree(void *ptr); void free(void *ptr); diff --git a/clang/test/Sema/const-eval-64.c b/clang/test/Sema/const-eval-64.c --- a/clang/test/Sema/const-eval-64.c +++ b/clang/test/Sema/const-eval-64.c @@ -3,5 +3,5 @@ #define EVAL_EXPR(testno, expr) int test##testno = sizeof(struct{char qq[expr];}); // -EVAL_EXPR(1, ((char*)-1LL) + 1 == 0 ? 1 : -1) // expected-warning {{folded}} -EVAL_EXPR(2, ((char*)-1LL) + 1 < (char*) -1 ? 1 : -1) // expected-warning {{folded}} +EVAL_EXPR(1, ((((char*)-1LL) + 1) == 0) ? 1 : -1) // expected-warning {{folded}} +EVAL_EXPR(2, ((((char*)-1LL) + 1) < (char*) -1) ? 1 : -1) // expected-warning {{folded}} diff --git a/clang/test/Sema/const-eval.c b/clang/test/Sema/const-eval.c --- a/clang/test/Sema/const-eval.c +++ b/clang/test/Sema/const-eval.c @@ -34,19 +34,19 @@ // ?: in constant expressions. int g17[(3?:1) - 2]; -EVAL_EXPR(18, ((int)((void*)10 + 10)) == 20 ? 1 : -1); +EVAL_EXPR(18, (((int)((void*)10 + 10)) == 20) ? 1 : -1); struct s { int a[(int)-1.0f]; // expected-error {{array size is negative}} }; -EVAL_EXPR(19, ((int)&*(char*)10 == 10 ? 1 : -1)); +EVAL_EXPR(19, (((int)&*(char*)10 == 10) ? 1 : -1)); EVAL_EXPR(20, __builtin_constant_p(*((int*) 10))); -EVAL_EXPR(21, (__imag__ 2i) == 2 ? 1 : -1); +EVAL_EXPR(21, ((__imag__ 2i) == 2) ? 1 : -1); -EVAL_EXPR(22, (__real__ (2i+3)) == 3 ? 1 : -1); +EVAL_EXPR(22, ((__real__ (2i+3)) == 3) ? 1 : -1); int g23[(int)(1.0 / 1.0)] = { 1 }; // expected-warning {{folded to constant array}} int g24[(int)(1.0 / 1.0)] = { 1 , 2 }; // expected-warning {{folded to constant array}} expected-warning {{excess elements in array initializer}} @@ -64,9 +64,9 @@ static const struct a V1 = (struct a){ 1, 2}; EVAL_EXPR(30, (int)(_Complex float)((1<<30)-1) == (1<<30) ? 1 : -1) -EVAL_EXPR(31, (int*)0 == (int*)0 ? 1 : -1) -EVAL_EXPR(32, (int*)0 != (int*)0 ? -1 : 1) -EVAL_EXPR(33, (void*)0 - (void*)0 == 0 ? 1 : -1) +EVAL_EXPR(31, ((int*)0 == (int*)0) ? 1 : -1) +EVAL_EXPR(32, ((int*)0 != (int*)0) ? -1 : 1) +EVAL_EXPR(33, ((void*)0 - (void*)0 == 0) ? 1 : -1) void foo(void) {} EVAL_EXPR(34, (foo == (void *)0) ? -1 : 1) @@ -76,11 +76,11 @@ EVAL_EXPR(36, constbool) EVAL_EXPR(37, ((void)1,2.0) == 2.0 ? 1 : -1) -EVAL_EXPR(38, __builtin_expect(1,1) == 1 ? 1 : -1) +EVAL_EXPR(38, (__builtin_expect(1,1) == 1) ? 1 : -1) // PR7884 -EVAL_EXPR(39, __real__(1.f) == 1 ? 1 : -1) -EVAL_EXPR(40, __imag__(1.f) == 0 ? 1 : -1) +EVAL_EXPR(39, (__real__(1.f) == 1) ? 1 : -1) +EVAL_EXPR(40, (__imag__(1.f) == 0) ? 1 : -1) // From gcc testsuite EVAL_EXPR(41, (int)(1+(_Complex unsigned)2)) @@ -120,8 +120,8 @@ EVAL_EXPR(43, varfloat && constfloat) // expected-error {{not an integer constant expression}} // -EVAL_EXPR(45, ((char*)-1) + 1 == 0 ? 1 : -1) -EVAL_EXPR(46, ((char*)-1) + 1 < (char*) -1 ? 1 : -1) +EVAL_EXPR(45, ((((char*)-1) + 1) == 0) ? 1 : -1) +EVAL_EXPR(46, ((((char*)-1) + 1) < (char*) -1) ? 1 : -1) EVAL_EXPR(47, &x < &x + 1 ? 1 : -1) EVAL_EXPR(48, &x != &x - 1 ? 1 : -1) EVAL_EXPR(49, &x < &x - 100 ? 1 : -1) // expected-error {{not an integer constant expression}} diff --git a/clang/test/Sema/constant-builtins-2.c b/clang/test/Sema/constant-builtins-2.c --- a/clang/test/Sema/constant-builtins-2.c +++ b/clang/test/Sema/constant-builtins-2.c @@ -65,12 +65,12 @@ char classify_zero [__builtin_fpclassify(-1, -1, -1, -1, +1, 0.0)]; char classify_neg_zero[__builtin_fpclassify(-1, -1, -1, -1, +1, -0.0)]; -char isinf_sign_noninf1[__builtin_isinf_sign(-0.0) == 0 ? 1 : -1]; -char isinf_sign_noninf2[__builtin_isinf_sign(1e307) == 0 ? 1 : -1]; -char isinf_sign_noninf3[__builtin_isinf_sign(__builtin_nan("")) == 0 ? 1 : -1]; -char isinf_sign_noninf4[__builtin_isinf_sign(-436.) == 0 ? 1 : -1]; -char isinf_sign_inf [__builtin_isinf_sign(__builtin_inf()) == 1 ? 1 : -1]; -char isinf_sign_neg_inf[__builtin_isinf_sign(-__builtin_inf()) == -1 ? 1 : -1]; +char isinf_sign_noninf1[(__builtin_isinf_sign(-0.0) == 0) ? 1 : -1]; +char isinf_sign_noninf2[(__builtin_isinf_sign(1e307) == 0) ? 1 : -1]; +char isinf_sign_noninf3[(__builtin_isinf_sign(__builtin_nan("")) == 0) ? 1 : -1]; +char isinf_sign_noninf4[(__builtin_isinf_sign(-436.) == 0) ? 1 : -1]; +char isinf_sign_inf [(__builtin_isinf_sign(__builtin_inf()) == 1) ? 1 : -1]; +char isinf_sign_neg_inf[(__builtin_isinf_sign(-__builtin_inf()) == -1) ? 1 : -1]; char isinf_inf_pos[__builtin_isinf(__builtin_inf()) ? 1 : -1]; char isinf_pos [!__builtin_isinf(1.0) ? 1 : -1]; @@ -131,7 +131,7 @@ #define BITSIZE(x) (sizeof(x) * 8) char clz1[__builtin_clz(1) == BITSIZE(int) - 1 ? 1 : -1]; char clz2[__builtin_clz(7) == BITSIZE(int) - 3 ? 1 : -1]; -char clz3[__builtin_clz(1 << (BITSIZE(int) - 1)) == 0 ? 1 : -1]; +char clz3[(__builtin_clz(1 << (BITSIZE(int) - 1)) == 0) ? 1 : -1]; int clz4 = __builtin_clz(0); // expected-error {{not a compile-time constant}} char clz5[__builtin_clzl(0xFL) == BITSIZE(long) - 4 ? 1 : -1]; char clz6[__builtin_clzll(0xFFLL) == BITSIZE(long long) - 8 ? 1 : -1]; @@ -139,58 +139,58 @@ char clz8[__builtin_clzs(0xf) == BITSIZE(short) - 4 ? 1 : -1]; char clz9[__builtin_clzs(0xfff) == BITSIZE(short) - 12 ? 1 : -1]; -char ctz1[__builtin_ctz(1) == 0 ? 1 : -1]; -char ctz2[__builtin_ctz(8) == 3 ? 1 : -1]; +char ctz1[(__builtin_ctz(1) == 0) ? 1 : -1]; +char ctz2[(__builtin_ctz(8) == 3) ? 1 : -1]; char ctz3[__builtin_ctz(1 << (BITSIZE(int) - 1)) == BITSIZE(int) - 1 ? 1 : -1]; int ctz4 = __builtin_ctz(0); // expected-error {{not a compile-time constant}} -char ctz5[__builtin_ctzl(0x10L) == 4 ? 1 : -1]; -char ctz6[__builtin_ctzll(0x100LL) == 8 ? 1 : -1]; +char ctz5[(__builtin_ctzl(0x10L) == 4) ? 1 : -1]; +char ctz6[(__builtin_ctzll(0x100LL) == 8) ? 1 : -1]; char ctz7[__builtin_ctzs(1 << (BITSIZE(short) - 1)) == BITSIZE(short) - 1 ? 1 : -1]; -char popcount1[__builtin_popcount(0) == 0 ? 1 : -1]; -char popcount2[__builtin_popcount(0xF0F0) == 8 ? 1 : -1]; +char popcount1[(__builtin_popcount(0) == 0) ? 1 : -1]; +char popcount2[(__builtin_popcount(0xF0F0) == 8) ? 1 : -1]; char popcount3[__builtin_popcount(~0) == BITSIZE(int) ? 1 : -1]; char popcount4[__builtin_popcount(~0L) == BITSIZE(int) ? 1 : -1]; -char popcount5[__builtin_popcountl(0L) == 0 ? 1 : -1]; -char popcount6[__builtin_popcountl(0xF0F0L) == 8 ? 1 : -1]; +char popcount5[(__builtin_popcountl(0L) == 0) ? 1 : -1]; +char popcount6[(__builtin_popcountl(0xF0F0L) == 8) ? 1 : -1]; char popcount7[__builtin_popcountl(~0L) == BITSIZE(long) ? 1 : -1]; -char popcount8[__builtin_popcountll(0LL) == 0 ? 1 : -1]; -char popcount9[__builtin_popcountll(0xF0F0LL) == 8 ? 1 : -1]; +char popcount8[(__builtin_popcountll(0LL) == 0) ? 1 : -1]; +char popcount9[(__builtin_popcountll(0xF0F0LL) == 8) ? 1 : -1]; char popcount10[__builtin_popcountll(~0LL) == BITSIZE(long long) ? 1 : -1]; -char parity1[__builtin_parity(0) == 0 ? 1 : -1]; -char parity2[__builtin_parity(0xb821) == 0 ? 1 : -1]; -char parity3[__builtin_parity(0xb822) == 0 ? 1 : -1]; -char parity4[__builtin_parity(0xb823) == 1 ? 1 : -1]; -char parity5[__builtin_parity(0xb824) == 0 ? 1 : -1]; -char parity6[__builtin_parity(0xb825) == 1 ? 1 : -1]; -char parity7[__builtin_parity(0xb826) == 1 ? 1 : -1]; -char parity8[__builtin_parity(~0) == 0 ? 1 : -1]; -char parity9[__builtin_parityl(1L << (BITSIZE(long) - 1)) == 1 ? 1 : -1]; -char parity10[__builtin_parityll(1LL << (BITSIZE(long long) - 1)) == 1 ? 1 : -1]; - -char bitreverse1[__builtin_bitreverse8(0x01) == 0x80 ? 1 : -1]; -char bitreverse2[__builtin_bitreverse16(0x3C48) == 0x123C ? 1 : -1]; -char bitreverse3[__builtin_bitreverse32(0x12345678) == 0x1E6A2C48 ? 1 : -1]; -char bitreverse4[__builtin_bitreverse64(0x0123456789ABCDEFULL) == 0xF7B3D591E6A2C480 ? 1 : -1]; - -char rotateleft1[__builtin_rotateleft8(0x01, 5) == 0x20 ? 1 : -1]; -char rotateleft2[__builtin_rotateleft16(0x3210, 11) == 0x8190 ? 1 : -1]; -char rotateleft2[__builtin_rotateleft32(0x76543210, 22) == 0x841D950C ? 1 : -1]; -char rotateleft2[__builtin_rotateleft64(0xFEDCBA9876543210ULL, 55) == 0x87F6E5D4C3B2A19ULL ? 1 : -1]; - -char rotateright1[__builtin_rotateright8(0x01, 5) == 0x08 ? 1 : -1]; -char rotateright2[__builtin_rotateright16(0x3210, 11) == 0x4206 ? 1 : -1]; -char rotateright2[__builtin_rotateright32(0x76543210, 22) == 0x50C841D9 ? 1 : -1]; -char rotateright2[__builtin_rotateright64(0xFEDCBA9876543210ULL, 55) == 0xB97530ECA86421FDULL ? 1 : -1]; - -char ffs1[__builtin_ffs(0) == 0 ? 1 : -1]; -char ffs2[__builtin_ffs(1) == 1 ? 1 : -1]; -char ffs3[__builtin_ffs(0xfbe71) == 1 ? 1 : -1]; -char ffs4[__builtin_ffs(0xfbe70) == 5 ? 1 : -1]; +char parity1[(__builtin_parity(0) == 0) ? 1 : -1]; +char parity2[(__builtin_parity(0xb821) == 0) ? 1 : -1]; +char parity3[(__builtin_parity(0xb822) == 0) ? 1 : -1]; +char parity4[(__builtin_parity(0xb823) == 1) ? 1 : -1]; +char parity5[(__builtin_parity(0xb824) == 0) ? 1 : -1]; +char parity6[(__builtin_parity(0xb825) == 1) ? 1 : -1]; +char parity7[(__builtin_parity(0xb826) == 1) ? 1 : -1]; +char parity8[(__builtin_parity(~0) == 0) ? 1 : -1]; +char parity9[(__builtin_parityl(1L << (BITSIZE(long) - 1)) == 1) ? 1 : -1]; +char parity10[(__builtin_parityll(1LL << (BITSIZE(long long) - 1)) == 1) ? 1 : -1]; + +char bitreverse1[(__builtin_bitreverse8(0x01) == 0x80) ? 1 : -1]; +char bitreverse2[(__builtin_bitreverse16(0x3C48) == 0x123C) ? 1 : -1]; +char bitreverse3[(__builtin_bitreverse32(0x12345678) == 0x1E6A2C48) ? 1 : -1]; +char bitreverse4[(__builtin_bitreverse64(0x0123456789ABCDEFULL) == 0xF7B3D591E6A2C480) ? 1 : -1]; + +char rotateleft1[(__builtin_rotateleft8(0x01, 5) == 0x20) ? 1 : -1]; +char rotateleft2[(__builtin_rotateleft16(0x3210, 11) == 0x8190) ? 1 : -1]; +char rotateleft2[(__builtin_rotateleft32(0x76543210, 22) == 0x841D950C) ? 1 : -1]; +char rotateleft2[(__builtin_rotateleft64(0xFEDCBA9876543210ULL, 55) == 0x87F6E5D4C3B2A19ULL) ? 1 : -1]; + +char rotateright1[(__builtin_rotateright8(0x01, 5) == 0x08) ? 1 : -1]; +char rotateright2[(__builtin_rotateright16(0x3210, 11) == 0x4206) ? 1 : -1]; +char rotateright2[(__builtin_rotateright32(0x76543210, 22) == 0x50C841D9) ? 1 : -1]; +char rotateright2[(__builtin_rotateright64(0xFEDCBA9876543210ULL, 55) == 0xB97530ECA86421FDULL) ? 1 : -1]; + +char ffs1[(__builtin_ffs(0) == 0) ? 1 : -1]; +char ffs2[(__builtin_ffs(1) == 1) ? 1 : -1]; +char ffs3[(__builtin_ffs(0xfbe71) == 1) ? 1 : -1]; +char ffs4[(__builtin_ffs(0xfbe70) == 5) ? 1 : -1]; char ffs5[__builtin_ffs(1U << (BITSIZE(int) - 1)) == BITSIZE(int) ? 1 : -1]; -char ffs6[__builtin_ffsl(0x10L) == 5 ? 1 : -1]; -char ffs7[__builtin_ffsll(0x100LL) == 9 ? 1 : -1]; +char ffs6[(__builtin_ffsl(0x10L) == 5) ? 1 : -1]; +char ffs7[(__builtin_ffsll(0x100LL) == 9) ? 1 : -1]; char clrsb1[__builtin_clrsb(0) == BITSIZE(int) - 1 ? 1 : -1]; char clrsb2[__builtin_clrsbl(0L) == BITSIZE(long) - 1 ? 1 : -1]; @@ -200,8 +200,8 @@ char clrsb6[__builtin_clrsbll(~0LL) == BITSIZE(long long) - 1 ? 1 : -1]; char clrsb7[__builtin_clrsb(1) == BITSIZE(int) - 2 ? 1 : -1]; char clrsb8[__builtin_clrsb(~1) == BITSIZE(int) - 2 ? 1 : -1]; -char clrsb9[__builtin_clrsb(1 << (BITSIZE(int) - 1)) == 0 ? 1 : -1]; -char clrsb10[__builtin_clrsb(~(1 << (BITSIZE(int) - 1))) == 0 ? 1 : -1]; +char clrsb9[(__builtin_clrsb(1 << (BITSIZE(int) - 1)) == 0) ? 1 : -1]; +char clrsb10[(__builtin_clrsb(~(1 << (BITSIZE(int) - 1))) == 0) ? 1 : -1]; char clrsb11[__builtin_clrsb(0xf) == BITSIZE(int) - 5 ? 1 : -1]; char clrsb12[__builtin_clrsb(~0x1f) == BITSIZE(int) - 6 ? 1 : -1]; #undef BITSIZE @@ -213,12 +213,12 @@ int h0 = __builtin_types_compatible_p(int, float); //int h1 = __builtin_choose_expr(1, 10, f()); //int h2 = __builtin_expect(0, 0); -int h3 = __builtin_bswap16(0x1234) == 0x3412 ? 1 : f(); -int h4 = __builtin_bswap32(0x1234) == 0x34120000 ? 1 : f(); -int h5 = __builtin_bswap64(0x1234) == 0x3412000000000000 ? 1 : f(); +int h3 = (__builtin_bswap16(0x1234) == 0x3412) ? 1 : f(); +int h4 = (__builtin_bswap32(0x1234) == 0x34120000) ? 1 : f(); +int h5 = (__builtin_bswap64(0x1234) == 0x3412000000000000) ? 1 : f(); extern long int bi0; extern __typeof__(__builtin_expect(0, 0)) bi0; // Strings int array1[__builtin_strlen("ab\0cd")]; -int array2[(sizeof(array1)/sizeof(int)) == 2? 1 : -1]; +int array2[((sizeof(array1)/sizeof(int)) == 2) ? 1 : -1]; diff --git a/clang/test/Sema/constant-builtins.c b/clang/test/Sema/constant-builtins.c --- a/clang/test/Sema/constant-builtins.c +++ b/clang/test/Sema/constant-builtins.c @@ -22,9 +22,9 @@ int h0 = __builtin_types_compatible_p(int,float); //int h1 = __builtin_choose_expr(1, 10, f()); //int h2 = __builtin_expect(0, 0); -int h3 = __builtin_bswap16(0x1234) == 0x3412 ? 1 : f(); -int h4 = __builtin_bswap32(0x1234) == 0x34120000 ? 1 : f(); -int h5 = __builtin_bswap64(0x1234) == 0x3412000000000000 ? 1 : f(); +int h3 = (__builtin_bswap16(0x1234) == 0x3412) ? 1 : f(); +int h4 = (__builtin_bswap32(0x1234) == 0x34120000) ? 1 : f(); +int h5 = (__builtin_bswap64(0x1234) == 0x3412000000000000) ? 1 : f(); short somefunc(void); diff --git a/clang/test/Sema/designated-initializers.c b/clang/test/Sema/designated-initializers.c --- a/clang/test/Sema/designated-initializers.c +++ b/clang/test/Sema/designated-initializers.c @@ -103,7 +103,7 @@ [4].in.y = &anint, [5].in.x = 12 }; -int zz_sizecheck[sizeof(zz) / sizeof(struct outer) == 8? 1 : -1 ]; +int zz_sizecheck[(sizeof(zz) / sizeof(struct outer) == 8) ? 1 : -1 ]; struct disklabel_ops { struct {} type; diff --git a/clang/test/Sema/enum.c b/clang/test/Sema/enum.c --- a/clang/test/Sema/enum.c +++ b/clang/test/Sema/enum.c @@ -95,7 +95,7 @@ // PR4515 enum PR4515 {PR4515a=1u,PR4515b=(PR4515a-2)/2}; -int CheckPR4515[PR4515b==0?1:-1]; +int CheckPR4515[(PR4515b==0) ? 1:-1]; // PR7911 extern enum PR7911T PR7911V; // expected-warning{{ISO C forbids forward references to 'enum' types}} diff --git a/clang/test/Sema/expr-comma-c99.c b/clang/test/Sema/expr-comma-c99.c --- a/clang/test/Sema/expr-comma-c99.c +++ b/clang/test/Sema/expr-comma-c99.c @@ -6,12 +6,12 @@ struct s a, b, c; -int A[sizeof((foo().c)) == 17 ? 1 : -1]; -int B[sizeof((a.c)) == 17 ? 1 : -1]; +int A[(sizeof((foo().c)) == 17) ? 1 : -1]; +int B[(sizeof((a.c)) == 17) ? 1 : -1]; // comma does array/function promotion in c99. -int X[sizeof(0, (foo().c)) == sizeof(char*) ? 1 : -1]; -int Y[sizeof(0, (a,b).c) == sizeof(char*) ? 1 : -1]; -int Z[sizeof(0, (a=b).c) == sizeof(char*) ? 1 : -1]; // expected-warning {{expression with side effects has no effect in an unevaluated context}} +int X[(sizeof(0, (foo().c)) == sizeof(char*)) ? 1 : -1]; +int Y[(sizeof(0, (a,b).c) == sizeof(char*)) ? 1 : -1]; +int Z[(sizeof(0, (a=b).c) == sizeof(char*)) ? 1 : -1]; // expected-warning {{expression with side effects has no effect in an unevaluated context}} diff --git a/clang/test/Sema/expr-comma.c b/clang/test/Sema/expr-comma.c --- a/clang/test/Sema/expr-comma.c +++ b/clang/test/Sema/expr-comma.c @@ -6,12 +6,12 @@ struct s a, b, c; -int A[sizeof((foo().c)) == 17 ? 1 : -1]; -int B[sizeof((a.c)) == 17 ? 1 : -1]; +int A[(sizeof((foo().c)) == 17) ? 1 : -1]; +int B[(sizeof((a.c)) == 17) ? 1 : -1]; // comma does not promote array/function in c90 unless they are lvalues. -int W[sizeof(0, a.c) == sizeof(char*) ? 1 : -1]; -int X[sizeof(0, (foo().c)) == 17 ? 1 : -1]; -int Y[sizeof(0, (a,b).c) == 17 ? 1 : -1]; -int Z[sizeof(0, (a=b).c) == 17 ? 1 : -1]; // expected-warning {{expression with side effects has no effect in an unevaluated context}} +int W[(sizeof(0, a.c) == sizeof(char*)) ? 1 : -1]; +int X[(sizeof(0, (foo().c)) == 17) ? 1 : -1]; +int Y[(sizeof(0, (a,b).c) == 17) ? 1 : -1]; +int Z[(sizeof(0, (a=b).c) == 17) ? 1 : -1]; // expected-warning {{expression with side effects has no effect in an unevaluated context}} diff --git a/clang/test/Sema/format-strings.c b/clang/test/Sema/format-strings.c --- a/clang/test/Sema/format-strings.c +++ b/clang/test/Sema/format-strings.c @@ -99,9 +99,9 @@ } void check_conditional_literal(const char* s, int i) { - printf(i == 1 ? "yes" : "no"); // no-warning - printf(i == 0 ? (i == 1 ? "yes" : "no") : "dont know"); // no-warning - printf(i == 0 ? (i == 1 ? s : "no") : "dont know"); // expected-warning{{format string is not a string literal}} + printf((i == 1) ? "yes" : "no"); // no-warning + printf((i == 0) ? ((i == 1) ? "yes" : "no") : "dont know"); // no-warning + printf((i == 0) ? ((i == 1) ? s : "no") : "dont know"); // expected-warning{{format string is not a string literal}} // expected-note@-1{{treat the string as an argument to avoid this}} printf("yes" ?: "no %d", 1); // expected-warning{{data argument not used by format string}} printf(0 ? "yes %s" : "no %d", 1); // no-warning diff --git a/clang/test/Sema/generic-selection.c b/clang/test/Sema/generic-selection.c --- a/clang/test/Sema/generic-selection.c +++ b/clang/test/Sema/generic-selection.c @@ -22,18 +22,18 @@ // ext-warning {{'_Generic' is a C11 extension}} char: 0, short: 0, long: 0); - int a1[_Generic(0, int: 1, short: 2, float: 3, default: 4) == 1 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a2[_Generic(0, default: 1, short: 2, float: 3, int: 4) == 4 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a3[_Generic(0L, int: 1, short: 2, float: 3, default: 4) == 4 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a4[_Generic(0L, default: 1, short: 2, float: 3, int: 4) == 1 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a5[_Generic(0, int: 1, short: 2, float: 3) == 1 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a6[_Generic(0, short: 1, float: 2, int: 3) == 3 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a1[(_Generic(0, int: 1, short: 2, float: 3, default: 4) == 1) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a2[(_Generic(0, default: 1, short: 2, float: 3, int: 4) == 4) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a3[(_Generic(0L, int: 1, short: 2, float: 3, default: 4) == 4) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a4[(_Generic(0L, default: 1, short: 2, float: 3, int: 4) == 1) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a5[(_Generic(0, int: 1, short: 2, float: 3) == 1) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a6[(_Generic(0, short: 1, float: 2, int: 3) == 3) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a7[_Generic("test", char *: 1, default: 2) == 1 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} - int a8[_Generic(g, void (*)(void): 1, default: 2) == 1 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a7[(_Generic("test", char *: 1, default: 2) == 1) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a8[(_Generic(g, void (*)(void): 1, default: 2) == 1) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} const int i = 12; - int a9[_Generic(i, int: 1, default: 2) == 1 ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} + int a9[(_Generic(i, int: 1, default: 2) == 1) ? 1 : -1]; // ext-warning {{'_Generic' is a C11 extension}} // This is expected to not trigger any diagnostics because the controlling // expression is not evaluated. diff --git a/clang/test/Sema/i-c-e.c b/clang/test/Sema/i-c-e.c --- a/clang/test/Sema/i-c-e.c +++ b/clang/test/Sema/i-c-e.c @@ -10,7 +10,7 @@ int expr; char w[__builtin_constant_p(expr) ? expr : 1]; -char v[sizeof(__builtin_constant_p(0)) == sizeof(int) ? 1 : -1]; +char v[(sizeof(__builtin_constant_p(0)) == sizeof(int)) ? 1 : -1]; int implicitConversion = 1.0; char floatArith[(int)(1.0+2.0)]; // expected-warning {{variable length array folded to constant array as an extension}} @@ -52,7 +52,7 @@ char array[1024/(sizeof (long))]; -int x['\xBb' == (char) 187 ? 1: -1]; +int x[('\xBb' == (char) 187) ? 1: -1]; // PR1992 void func(int x) @@ -90,8 +90,8 @@ int illegaldiv4[0 / (1 / 0)]; // expected-error {{variable length array declaration not allowed at file scope}} int chooseexpr[__builtin_choose_expr(1, 1, expr)]; -int realop[(__real__ 4) == 4 ? 1 : -1]; -int imagop[(__imag__ 4) == 0 ? 1 : -1]; +int realop[((__real__ 4) == 4) ? 1 : -1]; +int imagop[((__imag__ 4) == 0) ? 1 : -1]; int *PR14729 = 0 ?: 1/0; // expected-error {{not a compile-time constant}} expected-warning 2{{}} expected-error {{incompatible integer to pointer conversion initializing 'int *' with an expression of type 'int'}} diff --git a/clang/test/Sema/i386-linux-android.c b/clang/test/Sema/i386-linux-android.c --- a/clang/test/Sema/i386-linux-android.c +++ b/clang/test/Sema/i386-linux-android.c @@ -1,6 +1,6 @@ // RUN: %clang_cc1 -triple i386-linux-android -fsyntax-only -verify %s // expected-no-diagnostics -extern int a1_0[sizeof(long double) == 8 ? 1 : -1]; -extern int a1_i[__alignof(long double) == 4 ? 1 : -1]; +extern int a1_0[(sizeof(long double) == 8) ? 1 : -1]; +extern int a1_i[(__alignof(long double) == 4) ? 1 : -1]; diff --git a/clang/test/Sema/integer-overflow.c b/clang/test/Sema/integer-overflow.c --- a/clang/test/Sema/integer-overflow.c +++ b/clang/test/Sema/integer-overflow.c @@ -3,9 +3,9 @@ typedef unsigned int uint32_t; // Check integer sizes. -int array64[sizeof(uint64_t) == 8 ? 1 : -1]; -int array32[sizeof(uint32_t) == 4 ? 1 : -1]; -int arrayint[sizeof(int) < sizeof(uint64_t) ? 1 : -1]; +int array64[(sizeof(uint64_t) == 8) ? 1 : -1]; +int array32[(sizeof(uint32_t) == 4) ? 1 : -1]; +int arrayint[(sizeof(int) < sizeof(uint64_t)) ? 1 : -1]; uint64_t f0(uint64_t); uint64_t f1(uint64_t, uint32_t); @@ -34,7 +34,7 @@ uint64_t not_overflow2 = (1ULL * ((uint64_t)(4608) * (1024 * 1024)) + 2ULL); // expected-warning@+1 2{{overflow in expression; result is 536870912 with type 'int'}} - overflow = 4608 * 1024 * 1024 ? 4608 * 1024 * 1024 : 0; + overflow = (4608 * 1024 * 1024) ? 4608 * 1024 * 1024 : 0; // expected-warning@+1 {{overflow in expression; result is 536870912 with type 'int'}} overflow = 0 ? 0 : 4608 * 1024 * 1024; diff --git a/clang/test/Sema/merge-decls.c b/clang/test/Sema/merge-decls.c --- a/clang/test/Sema/merge-decls.c +++ b/clang/test/Sema/merge-decls.c @@ -68,7 +68,7 @@ void test4_f(a) char a; { - int v[sizeof(a) == 1 ? 1 : -1]; + int v[(sizeof(a) == 1) ? 1 : -1]; } int test5_f(int (*)[10]); diff --git a/clang/test/Sema/offsetof.c b/clang/test/Sema/offsetof.c --- a/clang/test/Sema/offsetof.c +++ b/clang/test/Sema/offsetof.c @@ -23,21 +23,21 @@ x = __builtin_offsetof(struct external_sun3_core, X[42].f2); // expected-error {{no member named 'f2'}} x = __builtin_offsetof(int, X[42].f2); // expected-error {{offsetof requires struct}} - int a[__builtin_offsetof(struct external_sun3_core, X) == 4 ? 1 : -1]; - int b[__builtin_offsetof(struct external_sun3_core, X[42]) == 340 ? 1 : -1]; - int c[__builtin_offsetof(struct external_sun3_core, X[42].f2) == 344 ? 1 : -1]; // expected-error {{no member named 'f2'}} + int a[(__builtin_offsetof(struct external_sun3_core, X) == 4) ? 1 : -1]; + int b[(__builtin_offsetof(struct external_sun3_core, X[42]) == 340) ? 1 : -1]; + int c[(__builtin_offsetof(struct external_sun3_core, X[42].f2) == 344) ? 1 : -1]; // expected-error {{no member named 'f2'}} } extern int f(void); struct s1 { int a; }; -int v1 = offsetof (struct s1, a) == 0 ? 0 : f(); +int v1 = (offsetof (struct s1, a) == 0) ? 0 : f(); struct s2 { int a; }; -int v2 = (int)(&((struct s2 *) 0)->a) == 0 ? 0 : f(); +int v2 = ((int)(&((struct s2 *) 0)->a) == 0) ? 0 : f(); struct s3 { int a; }; -int v3 = __builtin_offsetof(struct s3, a) == 0 ? 0 : f(); +int v3 = (__builtin_offsetof(struct s3, a) == 0) ? 0 : f(); // PR3396 struct sockaddr_un { diff --git a/clang/test/Sema/parentheses.c b/clang/test/Sema/parentheses.c --- a/clang/test/Sema/parentheses.c +++ b/clang/test/Sema/parentheses.c @@ -84,14 +84,14 @@ // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:14-[[@LINE-5]]:14}:"(" // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:24-[[@LINE-6]]:24}:")" - (void)(x % 2 ? 1 : 2); // no warning + (void)(x % 2 ? 1 : 2); // expected-warning {{operator '?:' has lower precedence than '%'}} expected-note 2{{place parenthese}} (void)(x + p ? 1 : 2); // expected-warning {{operator '?:' has lower precedence than '+'}} expected-note 2{{place parentheses}} - (void)(p + x ? 1 : 2); // no warning + (void)(p + x ? 1 : 2); // expected-warning {{operator '?:' has lower precedence than '+'}} expected-note 2{{place parentheses}} (void)(p + b ? 1 : 2); // expected-warning {{operator '?:' has lower precedence than '+'}} expected-note 2{{place parentheses}} - (void)(x + y > 0 ? 1 : 2); // no warning + (void)(x + y > 0 ? 1 : 2); // expected-warning {{operator '?:' has lower precedence than '>'}} expected-note 2{{place parentheses}} (void)(x + (y > 0) ? 1 : 2); // expected-warning {{operator '?:' has lower precedence than '+'}} expected-note 2{{place parentheses}} (void)(b ? 0xf0 : 0x10 | b ? 0x5 : 0x2); // expected-warning {{operator '?:' has lower precedence than '|'}} expected-note 2{{place parentheses}} diff --git a/clang/test/Sema/parentheses.cpp b/clang/test/Sema/parentheses.cpp --- a/clang/test/Sema/parentheses.cpp +++ b/clang/test/Sema/parentheses.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -Wparentheses -fsyntax-only -verify %s -// RUN: %clang_cc1 -Wparentheses -fsyntax-only -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s +// RUN: %clang_cc1 -Wparentheses -Woverloaded-shift-op-parentheses -fsyntax-only -verify %s +// RUN: %clang_cc1 -Wparentheses -Woverloaded-shift-op-parentheses -fsyntax-only -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s bool someConditionFunc(); @@ -38,7 +38,7 @@ Stream &operator>>(const char*); }; -void f(Stream& s, bool b) { +void f(Stream& s, bool b, int x) { (void)(s << b ? "foo" : "bar"); // expected-warning {{operator '?:' has lower precedence than '<<'}} \ // expected-note {{place parentheses around the '<<' expression to silence this warning}} \ // expected-note {{place parentheses around the '?:' expression to evaluate it first}} @@ -62,6 +62,33 @@ // CHECK: fix-it:"{{.*}}":{[[@LINE-4]]:16-[[@LINE-4]]:16}:")" // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:15-[[@LINE-5]]:15}:"(" // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:21-[[@LINE-6]]:21}:")" + + void(s << "Test" << x ? "foo" : "bar"); //expected-warning {{operator '?:' has lower precedence than '<<'}} \ + // expected-note {{place parentheses around the '<<' expression to silence this warning}} \ + // expected-note {{place parentheses around the '?:' expression to evaluate it first}} + // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:8-[[@LINE-3]]:8}:"(" + // CHECK: fix-it:"{{.*}}":{[[@LINE-4]]:24-[[@LINE-4]]:24}:")" + // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:23-[[@LINE-5]]:23}:"(" + // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:40-[[@LINE-6]]:40}:")" + + void(s << x == 1 ? "foo": "bar"); //expected-warning {{overloaded operator << has higher precedence than comparison operator}} \ + //expected-warning {{operator '?:' has lower precedence than '=='}} \ + //expected-note {{place parentheses around the '==' expression to silence this warning}} \ + //expected-note {{place parentheses around comparison expression to evaluate it first}} + //expected-note {{place parentheses around the '<<' expression to silence this warning}} \ + //expected-note {{place parentheses around the '?:' expression to evaluate it first}} + // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:10-[[@LINE-3]]:10}:"(" + // CHECK: fix-it:"{{.*}}":{[[@LINE-4]]:15-[[@LINE-4]]:15}:")" + // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:13-[[@LINE-5]]:13}:"(" + // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:19-[[@LINE-6]]:19}:")" + + void(s << static_cast(x) ? "foo" : "bar"); //expected-warning {{operator '?:' has lower precedence than '<<'}} \ + //expected-note {{place parentheses around the '<<' expression to silence this warning}} \ + //expected-note {{place parentheses around the '?:' expression to evaluate it first}} + // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:8-[[@LINE-3]]:8}:"(" + // CHECK: fix-it:"{{.*}}":{[[@LINE-4]]:33-[[@LINE-4]]:33}:")" + // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:13-[[@LINE-5]]:13}:"(" + // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:49-[[@LINE-6]]:49}:")" } struct S { diff --git a/clang/test/Sema/pragma-align-mac68k.c b/clang/test/Sema/pragma-align-mac68k.c --- a/clang/test/Sema/pragma-align-mac68k.c +++ b/clang/test/Sema/pragma-align-mac68k.c @@ -8,95 +8,95 @@ typedef float __attribute__((vector_size (8))) v2f_t; typedef float __attribute__((vector_size (16))) v4f_t; -extern int a0_0[__alignof(v2f_t) == 8 ? 1 : -1]; -extern int a0_1[__alignof(v4f_t) == 16 ? 1 : -1]; +extern int a0_0[(__alignof(v2f_t) == 8) ? 1 : -1]; +extern int a0_1[(__alignof(v4f_t) == 16) ? 1 : -1]; struct s1 { char f0; int f1; }; -extern int a1_0[offsetof(struct s1, f0) == 0 ? 1 : -1]; -extern int a1_1[offsetof(struct s1, f1) == 2 ? 1 : -1]; -extern int a1_2[sizeof(struct s1) == 6 ? 1 : -1]; -extern int a1_3[__alignof(struct s1) == 2 ? 1 : -1]; +extern int a1_0[(offsetof(struct s1, f0) == 0) ? 1 : -1]; +extern int a1_1[(offsetof(struct s1, f1) == 2) ? 1 : -1]; +extern int a1_2[(sizeof(struct s1) == 6) ? 1 : -1]; +extern int a1_3[(__alignof(struct s1) == 2) ? 1 : -1]; struct s2 { char f0; double f1; }; -extern int a2_0[offsetof(struct s2, f0) == 0 ? 1 : -1]; -extern int a2_1[offsetof(struct s2, f1) == 2 ? 1 : -1]; -extern int a2_2[sizeof(struct s2) == 10 ? 1 : -1]; -extern int a2_3[__alignof(struct s2) == 2 ? 1 : -1]; +extern int a2_0[(offsetof(struct s2, f0) == 0) ? 1 : -1]; +extern int a2_1[(offsetof(struct s2, f1) == 2) ? 1 : -1]; +extern int a2_2[(sizeof(struct s2) == 10) ? 1 : -1]; +extern int a2_3[(__alignof(struct s2) == 2) ? 1 : -1]; struct s3 { char f0; v4f_t f1; }; -extern int a3_0[offsetof(struct s3, f0) == 0 ? 1 : -1]; -extern int a3_1[offsetof(struct s3, f1) == 2 ? 1 : -1]; -extern int a3_2[sizeof(struct s3) == 18 ? 1 : -1]; -extern int a3_3[__alignof(struct s3) == 2 ? 1 : -1]; +extern int a3_0[(offsetof(struct s3, f0) == 0) ? 1 : -1]; +extern int a3_1[(offsetof(struct s3, f1) == 2) ? 1 : -1]; +extern int a3_2[(sizeof(struct s3) == 18) ? 1 : -1]; +extern int a3_3[(__alignof(struct s3) == 2) ? 1 : -1]; struct s4 { char f0; char f1; }; -extern int a4_0[offsetof(struct s4, f0) == 0 ? 1 : -1]; -extern int a4_1[offsetof(struct s4, f1) == 1 ? 1 : -1]; -extern int a4_2[sizeof(struct s4) == 2 ? 1 : -1]; -extern int a4_3[__alignof(struct s4) == 2 ? 1 : -1]; +extern int a4_0[(offsetof(struct s4, f0) == 0) ? 1 : -1]; +extern int a4_1[(offsetof(struct s4, f1) == 1) ? 1 : -1]; +extern int a4_2[(sizeof(struct s4) == 2) ? 1 : -1]; +extern int a4_3[(__alignof(struct s4) == 2) ? 1 : -1]; struct s5 { unsigned f0 : 9; unsigned f1 : 9; }; -extern int a5_0[sizeof(struct s5) == 4 ? 1 : -1]; -extern int a5_1[__alignof(struct s5) == 2 ? 1 : -1]; +extern int a5_0[(sizeof(struct s5) == 4) ? 1 : -1]; +extern int a5_1[(__alignof(struct s5) == 2) ? 1 : -1]; struct s6 { unsigned : 0; unsigned : 0; }; -extern int a6_0[sizeof(struct s6) == 0 ? 1 : -1]; -extern int a6_1[__alignof(struct s6) == 2 ? 1 : -1]; +extern int a6_0[(sizeof(struct s6) == 0) ? 1 : -1]; +extern int a6_1[(__alignof(struct s6) == 2) ? 1 : -1]; struct s7 { char : 1; unsigned : 1; }; -extern int a7_0[sizeof(struct s7) == 2 ? 1 : -1]; -extern int a7_1[__alignof(struct s7) == 2 ? 1 : -1]; +extern int a7_0[(sizeof(struct s7) == 2) ? 1 : -1]; +extern int a7_1[(__alignof(struct s7) == 2) ? 1 : -1]; struct s8 { char f0; unsigned : 1; }; -extern int a8_0[sizeof(struct s8) == 2 ? 1 : -1]; -extern int a8_1[__alignof(struct s8) == 2 ? 1 : -1]; +extern int a8_0[(sizeof(struct s8) == 2) ? 1 : -1]; +extern int a8_1[(__alignof(struct s8) == 2) ? 1 : -1]; struct s9 { char f0[3]; unsigned : 0; char f1; }; -extern int a9_0[sizeof(struct s9) == 6 ? 1 : -1]; -extern int a9_1[__alignof(struct s9) == 2 ? 1 : -1]; +extern int a9_0[(sizeof(struct s9) == 6) ? 1 : -1]; +extern int a9_1[(__alignof(struct s9) == 2) ? 1 : -1]; struct s10 { char f0; }; -extern int a10_0[sizeof(struct s10) == 2 ? 1 : -1]; -extern int a10_1[__alignof(struct s10) == 2 ? 1 : -1]; +extern int a10_0[(sizeof(struct s10) == 2) ? 1 : -1]; +extern int a10_1[(__alignof(struct s10) == 2) ? 1 : -1]; struct s11 { char f0; v2f_t f1; }; -extern int a11_0[offsetof(struct s11, f0) == 0 ? 1 : -1]; -extern int a11_1[offsetof(struct s11, f1) == 2 ? 1 : -1]; -extern int a11_2[sizeof(struct s11) == 10 ? 1 : -1]; -extern int a11_3[__alignof(struct s11) == 2 ? 1 : -1]; +extern int a11_0[(offsetof(struct s11, f0) == 0) ? 1 : -1]; +extern int a11_1[(offsetof(struct s11, f1) == 2) ? 1 : -1]; +extern int a11_2[(sizeof(struct s11) == 10) ? 1 : -1]; +extern int a11_3[(__alignof(struct s11) == 2) ? 1 : -1]; #pragma options align=reset @@ -107,5 +107,5 @@ int f1; }; #pragma options align=reset - extern int a12[sizeof(struct s12) == 6 ? 1 : -1]; + extern int a12[(sizeof(struct s12) == 6) ? 1 : -1]; } diff --git a/clang/test/Sema/pragma-align-packed.c b/clang/test/Sema/pragma-align-packed.c --- a/clang/test/Sema/pragma-align-packed.c +++ b/clang/test/Sema/pragma-align-packed.c @@ -6,26 +6,26 @@ char f0; int f1 __attribute__((aligned(4))); }; -extern int a[sizeof(struct s0) == 5 ? 1 : -1]; +extern int a[(sizeof(struct s0) == 5) ? 1 : -1]; #pragma pack(pop) struct __attribute__((packed)) s1 { char f0; int f1 __attribute__((aligned(4))); }; -extern int a[sizeof(struct s1) == 8 ? 1 : -1]; +extern int a[(sizeof(struct s1) == 8) ? 1 : -1]; #pragma options align=packed struct s2 { char f0; int f1 __attribute__((aligned(4))); }; -extern int a[sizeof(struct s2) == 5 ? 1 : -1]; +extern int a[(sizeof(struct s2) == 5) ? 1 : -1]; #pragma options align=reset #pragma pack(1) struct s3_0 { unsigned char f0; unsigned int f1; }; -int t3_0[sizeof(struct s3_0) == 5 ? 1 : -1]; +int t3_0[(sizeof(struct s3_0) == 5) ? 1 : -1]; #pragma options align=reset struct s3_1 { unsigned char f0; unsigned int f1; }; -int t3_1[sizeof(struct s3_1) == 8 ? 1 : -1]; +int t3_1[(sizeof(struct s3_1) == 8) ? 1 : -1]; diff --git a/clang/test/Sema/pragma-ms_struct.c b/clang/test/Sema/pragma-ms_struct.c --- a/clang/test/Sema/pragma-ms_struct.c +++ b/clang/test/Sema/pragma-ms_struct.c @@ -57,7 +57,7 @@ #pragma ms_struct off -static int arr[sizeof(PackOddity) == 40 ? 1 : -1]; +static int arr[(sizeof(PackOddity) == 40) ? 1 : -1]; struct __declspec(ms_struct) bad { // expected-warning {{__declspec attribute 'ms_struct' is not supported}} }; diff --git a/clang/test/Sema/pragma-pack-2.c b/clang/test/Sema/pragma-pack-2.c --- a/clang/test/Sema/pragma-pack-2.c +++ b/clang/test/Sema/pragma-pack-2.c @@ -10,14 +10,14 @@ char f0; int f1; }; -extern int a0[offsetof(struct s0, f1) == 4 ? 1 : -1]; +extern int a0[(offsetof(struct s0, f1) == 4) ? 1 : -1]; #pragma pack(push, 2) struct s1 { char f0; int f1; }; -extern int a1[offsetof(struct s1, f1) == 2 ? 1 : -1]; +extern int a1[(offsetof(struct s1, f1) == 2) ? 1 : -1]; #pragma pack(pop) #pragma pack(1) @@ -30,8 +30,8 @@ char f0; int f1; }; -extern int a3_0[offsetof(struct s3_0, f1) == 1 ? 1 : -1]; -extern int a3_1[offsetof(struct s3_1, f1) == 4 ? 1 : -1]; +extern int a3_0[(offsetof(struct s3_0, f1) == 1) ? 1 : -1]; +extern int a3_1[(offsetof(struct s3_1, f1) == 4) ? 1 : -1]; // pack(0) is like pack() #pragma pack(1) @@ -44,8 +44,8 @@ char f0; int f1; }; -extern int a4_0[offsetof(struct s4_0, f1) == 1 ? 1 : -1]; -extern int a4_1[offsetof(struct s4_1, f1) == 4 ? 1 : -1]; +extern int a4_0[(offsetof(struct s4_0, f1) == 1) ? 1 : -1]; +extern int a4_1[(offsetof(struct s4_1, f1) == 4) ? 1 : -1]; void f(void) { #pragma pack(push, 2) @@ -56,5 +56,5 @@ } f1; }; #pragma pack(pop) - extern int s5_0[offsetof(struct s5_0, f1) == 2 ? 1 : -1]; + extern int s5_0[(offsetof(struct s5_0, f1) == 2) ? 1 : -1]; } diff --git a/clang/test/Sema/pragma-pack-3.c b/clang/test/Sema/pragma-pack-3.c --- a/clang/test/Sema/pragma-pack-3.c +++ b/clang/test/Sema/pragma-pack-3.c @@ -24,7 +24,7 @@ char f0; short f1; }; -int a[sizeof(struct s0) == 3 ? 1 : -1]; +int a[(sizeof(struct s0) == 3) ? 1 : -1]; #pragma pack(pop) // Stack: [], Alignment: 8 @@ -32,4 +32,4 @@ char f0; short f1; }; -int b[sizeof(struct s1) == 4 ? 1 : -1]; +int b[(sizeof(struct s1) == 4) ? 1 : -1]; diff --git a/clang/test/Sema/pragma-pack-5.c b/clang/test/Sema/pragma-pack-5.c --- a/clang/test/Sema/pragma-pack-5.c +++ b/clang/test/Sema/pragma-pack-5.c @@ -11,14 +11,14 @@ unsigned f2 : 32; char f3; }; -extern int check[sizeof(struct s0) == 6 ? 1 : -1]; +extern int check[(sizeof(struct s0) == 6) ? 1 : -1]; struct s1 { char f1; unsigned : 0; char f3; }; -extern int check[sizeof(struct s1) == 5 ? 1 : -1]; +extern int check[(sizeof(struct s1) == 5) ? 1 : -1]; struct s2 { char f1; @@ -26,7 +26,7 @@ unsigned f3 : 8; char f4; }; -extern int check[sizeof(struct s2) == 6 ? 1 : -1]; +extern int check[(sizeof(struct s2) == 6) ? 1 : -1]; struct s3 { char f1; @@ -34,13 +34,13 @@ unsigned f3 : 16; char f4; }; -extern int check[sizeof(struct s3) == 8 ? 1 : -1]; -extern int check[offsetof(struct s3, f4) == 6 ? 1 : -1]; +extern int check[(sizeof(struct s3) == 8) ? 1 : -1]; +extern int check[(offsetof(struct s3, f4) == 6) ? 1 : -1]; struct s4 { char f1; unsigned f2 : 8; char f3; }; -extern int check[sizeof(struct s4) == 4 ? 1 : -1]; -extern int check[offsetof(struct s4, f3) == 2 ? 1 : -1]; +extern int check[(sizeof(struct s4) == 4) ? 1 : -1]; +extern int check[(offsetof(struct s4, f3) == 2) ? 1 : -1]; diff --git a/clang/test/Sema/pragma-pack-6.c b/clang/test/Sema/pragma-pack-6.c --- a/clang/test/Sema/pragma-pack-6.c +++ b/clang/test/Sema/pragma-pack-6.c @@ -12,6 +12,6 @@ struct Y { int y; }; -extern int check[__alignof(struct X) == 2 ? 1 : -1]; -extern int check[__alignof(struct Y) == 4 ? 1 : -1]; +extern int check[(__alignof(struct X) == 2) ? 1 : -1]; +extern int check[(__alignof(struct Y) == 4) ? 1 : -1]; diff --git a/clang/test/Sema/pragma-pack-and-options-align.c b/clang/test/Sema/pragma-pack-and-options-align.c --- a/clang/test/Sema/pragma-pack-and-options-align.c +++ b/clang/test/Sema/pragma-pack-and-options-align.c @@ -7,14 +7,14 @@ char c; int x; }; -extern int a[sizeof(struct s0) == 5 ? 1 : -1]; +extern int a[(sizeof(struct s0) == 5) ? 1 : -1]; #pragma options align=natural struct s1 { char c; int x; }; -extern int a[sizeof(struct s1) == 8 ? 1 : -1]; +extern int a[(sizeof(struct s1) == 8) ? 1 : -1]; #pragma options align=reset #pragma options align=native @@ -22,21 +22,21 @@ char c; int x; }; -extern int a[sizeof(struct s1_1) == 8 ? 1 : -1]; +extern int a[(sizeof(struct s1_1) == 8) ? 1 : -1]; #pragma pack(pop) struct s2 { char c; int x; }; -extern int a[sizeof(struct s2) == 5 ? 1 : -1]; +extern int a[(sizeof(struct s2) == 5) ? 1 : -1]; #pragma pack(pop) struct s3 { char c; int x; }; -extern int a[sizeof(struct s3) == 8 ? 1 : -1]; +extern int a[(sizeof(struct s3) == 8) ? 1 : -1]; #pragma pack(push,2) #pragma options align=power @@ -46,7 +46,7 @@ }; #pragma pack(pop) #pragma options align=reset -extern int a[sizeof(struct s4) == 8 ? 1 : -1]; +extern int a[(sizeof(struct s4) == 8) ? 1 : -1]; /* expected-warning {{#pragma options align=reset failed: stack empty}} */ #pragma options align=reset /* expected-warning {{#pragma pack(pop, ...) failed: stack empty}} */ #pragma pack(pop) diff --git a/clang/test/Sema/predef.c b/clang/test/Sema/predef.c --- a/clang/test/Sema/predef.c +++ b/clang/test/Sema/predef.c @@ -2,7 +2,7 @@ void abcdefghi12(void) { const char (*ss)[12] = &__func__; - static int arr[sizeof(__func__)==12 ? 1 : -1]; + static int arr[(sizeof(__func__)==12) ? 1 : -1]; } char *X = __func__; // expected-warning {{predefined identifier is only valid}} \ diff --git a/clang/test/Sema/short-enums.c b/clang/test/Sema/short-enums.c --- a/clang/test/Sema/short-enums.c +++ b/clang/test/Sema/short-enums.c @@ -3,4 +3,4 @@ // expected-no-diagnostics enum x { A }; -int t0[sizeof(enum x) == 1 ? 1 : -1]; +int t0[(sizeof(enum x) == 1) ? 1 : -1]; diff --git a/clang/test/Sema/sign-conversion.c b/clang/test/Sema/sign-conversion.c --- a/clang/test/Sema/sign-conversion.c +++ b/clang/test/Sema/sign-conversion.c @@ -6,7 +6,7 @@ void test(int x) { unsigned t0 = x; // expected-warning {{implicit conversion changes signedness}} - unsigned t1 = (t0 == 5 ? x : 0); // expected-warning {{operand of ? changes signedness}} + unsigned t1 = ((t0 == 5) ? x : 0); // expected-warning {{operand of ? changes signedness}} // Clang has special treatment for left shift of literal '1'. // Make sure there is no diagnostics. diff --git a/clang/test/Sema/sizeless-1.c b/clang/test/Sema/sizeless-1.c --- a/clang/test/Sema/sizeless-1.c +++ b/clang/test/Sema/sizeless-1.c @@ -238,9 +238,9 @@ svint8_t local_int8; svint16_t local_int16; - int a1[_Generic(local_int8, svint8_t : 1, svint16_t : 2, default : 3) == 1 ? 1 : -1]; - int a2[_Generic(local_int16, svint8_t : 1, svint16_t : 2, default : 3) == 2 ? 1 : -1]; - int a3[_Generic(0, svint8_t : 1, svint16_t : 2, default : 3) == 3 ? 1 : -1]; + int a1[(_Generic(local_int8, svint8_t : 1, svint16_t : 2, default : 3) == 1) ? 1 : -1]; + int a2[(_Generic(local_int16, svint8_t : 1, svint16_t : 2, default : 3) == 2) ? 1 : -1]; + int a3[(_Generic(0, svint8_t : 1, svint16_t : 2, default : 3) == 3) ? 1 : -1]; (void)_Generic(0, svint8_t : 1, svint8_t : 2, default : 3); // expected-error {{type 'svint8_t' (aka '__SVInt8_t') in generic association compatible with previously specified type 'svint8_t'}} expected-note {{compatible type}} } diff --git a/clang/test/Sema/sizeof-struct-non-zero-as-member.cl b/clang/test/Sema/sizeof-struct-non-zero-as-member.cl --- a/clang/test/Sema/sizeof-struct-non-zero-as-member.cl +++ b/clang/test/Sema/sizeof-struct-non-zero-as-member.cl @@ -7,13 +7,13 @@ // has 64-bit pointers, sizeof(test::ptr) should be 8. struct test_as0 {int *ptr;}; -constant int as0[sizeof(struct test_as0) == 4 ? 1 : -1] = { 0 }; +constant int as0[(sizeof(struct test_as0) == 4) ? 1 : -1] = { 0 }; struct test_as1 {global int *ptr;}; -constant int as1[sizeof(struct test_as1) == 8 ? 1 : -1] = { 0 }; +constant int as1[(sizeof(struct test_as1) == 8) ? 1 : -1] = { 0 }; struct test_as2 {constant int *ptr;}; -constant int as2[sizeof(struct test_as2) == 8 ? 1 : -1] = { 0 }; +constant int as2[(sizeof(struct test_as2) == 8) ? 1 : -1] = { 0 }; struct test_as3 {local int *ptr;}; -constant int as3[sizeof(struct test_as3) == 4 ? 1 : -1] = { 0 }; +constant int as3[(sizeof(struct test_as3) == 4) ? 1 : -1] = { 0 }; diff --git a/clang/test/Sema/struct-packed-align.c b/clang/test/Sema/struct-packed-align.c --- a/clang/test/Sema/struct-packed-align.c +++ b/clang/test/Sema/struct-packed-align.c @@ -11,8 +11,8 @@ int d; }; -extern int a1[sizeof(struct s) == 12 ? 1 : -1]; -extern int a2[__alignof(struct s) == 4 ? 1 : -1]; +extern int a1[(sizeof(struct s) == 12) ? 1 : -1]; +extern int a2[(__alignof(struct s) == 4) ? 1 : -1]; struct __attribute__((packed)) packed_s { char a; @@ -21,32 +21,32 @@ int d; }; -extern int b1[sizeof(struct packed_s) == 10 ? 1 : -1]; -extern int b2[__alignof(struct packed_s) == 1 ? 1 : -1]; +extern int b1[(sizeof(struct packed_s) == 10) ? 1 : -1]; +extern int b2[(__alignof(struct packed_s) == 1) ? 1 : -1]; struct fas { char a; int b[]; }; -extern int c1[sizeof(struct fas) == 4 ? 1 : -1]; -extern int c2[__alignof(struct fas) == 4 ? 1 : -1]; +extern int c1[(sizeof(struct fas) == 4) ? 1 : -1]; +extern int c2[(__alignof(struct fas) == 4) ? 1 : -1]; struct __attribute__((packed)) packed_fas { char a; int b[]; }; -extern int d1[sizeof(struct packed_fas) == 1 ? 1 : -1]; -extern int d2[__alignof(struct packed_fas) == 1 ? 1 : -1]; +extern int d1[(sizeof(struct packed_fas) == 1) ? 1 : -1]; +extern int d2[(__alignof(struct packed_fas) == 1) ? 1 : -1]; struct packed_after_fas { char a; int b[]; } __attribute__((packed)); -extern int d1_2[sizeof(struct packed_after_fas) == 1 ? 1 : -1]; -extern int d2_2[__alignof(struct packed_after_fas) == 1 ? 1 : -1]; +extern int d1_2[(sizeof(struct packed_after_fas) == 1) ? 1 : -1]; +extern int d2_2[(__alignof(struct packed_after_fas) == 1) ? 1 : -1]; // Alignment @@ -54,18 +54,18 @@ char c; }; -extern int e1[sizeof(struct as1) == 8 ? 1 : -1]; -extern int e2[__alignof(struct as1) == 8 ? 1 : -1]; +extern int e1[(sizeof(struct as1) == 8) ? 1 : -1]; +extern int e2[(__alignof(struct as1) == 8) ? 1 : -1]; struct __attribute__((aligned)) as1_2 { char c; }; #if ( defined(__s390x__) || ( defined (__ARM_32BIT_STATE) && ! defined(__ANDROID__) ) ) -extern int e1_2[sizeof(struct as1_2) == 8 ? 1 : -1]; -extern int e2_2[__alignof(struct as1_2) == 8 ? 1 : -1]; +extern int e1_2[(sizeof(struct as1_2) == 8) ? 1 : -1]; +extern int e2_2[(__alignof(struct as1_2) == 8) ? 1 : -1]; #else -extern int e1_2[sizeof(struct as1_2) == 16 ? 1 : -1]; -extern int e2_2[__alignof(struct as1_2) == 16 ? 1 : -1]; +extern int e1_2[(sizeof(struct as1_2) == 16) ? 1 : -1]; +extern int e2_2[(__alignof(struct as1_2) == 16) ? 1 : -1]; #endif struct as2 { @@ -73,8 +73,8 @@ int __attribute__((aligned(8))) a; }; -extern int f1[sizeof(struct as2) == 16 ? 1 : -1]; -extern int f2[__alignof(struct as2) == 8 ? 1 : -1]; +extern int f1[(sizeof(struct as2) == 16) ? 1 : -1]; +extern int f2[(__alignof(struct as2) == 8) ? 1 : -1]; struct __attribute__((packed)) as3 { char c; @@ -82,8 +82,8 @@ int __attribute__((aligned(8))) b; }; -extern int g1[sizeof(struct as3) == 16 ? 1 : -1]; -extern int g2[__alignof(struct as3) == 8 ? 1 : -1]; +extern int g1[(sizeof(struct as3) == 16) ? 1 : -1]; +extern int g2[(__alignof(struct as3) == 8) ? 1 : -1]; // rdar://5921025 @@ -94,35 +94,35 @@ // Packed union union __attribute__((packed)) au4 {char c; int x;}; -extern int h1[sizeof(union au4) == 4 ? 1 : -1]; -extern int h2[__alignof(union au4) == 1 ? 1 : -1]; +extern int h1[(sizeof(union au4) == 4) ? 1 : -1]; +extern int h2[(__alignof(union au4) == 1) ? 1 : -1]; // Aligned union union au5 {__attribute__((aligned(4))) char c;}; -extern int h1[sizeof(union au5) == 4 ? 1 : -1]; -extern int h2[__alignof(union au5) == 4 ? 1 : -1]; +extern int h1[(sizeof(union au5) == 4) ? 1 : -1]; +extern int h2[(__alignof(union au5) == 4) ? 1 : -1]; // Alignment+packed struct as6 {char c; __attribute__((packed, aligned(2))) int x;}; -extern int i1[sizeof(struct as6) == 6 ? 1 : -1]; -extern int i2[__alignof(struct as6) == 2 ? 1 : -1]; +extern int i1[(sizeof(struct as6) == 6) ? 1 : -1]; +extern int i2[(__alignof(struct as6) == 2) ? 1 : -1]; union au6 {char c; __attribute__((packed, aligned(2))) int x;}; -extern int k1[sizeof(union au6) == 4 ? 1 : -1]; -extern int k2[__alignof(union au6) == 2 ? 1 : -1]; +extern int k1[(sizeof(union au6) == 4) ? 1 : -1]; +extern int k2[(__alignof(union au6) == 2) ? 1 : -1]; // Check postfix attributes union au7 {char c; int x;} __attribute__((packed)); -extern int l1[sizeof(union au7) == 4 ? 1 : -1]; -extern int l2[__alignof(union au7) == 1 ? 1 : -1]; +extern int l1[(sizeof(union au7) == 4) ? 1 : -1]; +extern int l2[(__alignof(union au7) == 1) ? 1 : -1]; struct packed_fas2 { char a; int b[]; } __attribute__((packed)); -extern int m1[sizeof(struct packed_fas2) == 1 ? 1 : -1]; -extern int m2[__alignof(struct packed_fas2) == 1 ? 1 : -1]; +extern int m1[(sizeof(struct packed_fas2) == 1) ? 1 : -1]; +extern int m2[(__alignof(struct packed_fas2) == 1) ? 1 : -1]; // Attribute aligned can round down typedefs. PR9253 typedef long long __attribute__((aligned(1))) nt; @@ -134,11 +134,11 @@ #if defined(_WIN32) && !defined(__declspec) // _MSC_VER is unavailable in cc1. // Alignment doesn't affect packing in MS mode. -extern int n1[sizeof(struct nS) == 16 ? 1 : -1]; -extern int n2[__alignof(struct nS) == 8 ? 1 : -1]; +extern int n1[(sizeof(struct nS) == 16) ? 1 : -1]; +extern int n2[(__alignof(struct nS) == 8) ? 1 : -1]; #else -extern int n1[sizeof(struct nS) == 9 ? 1 : -1]; -extern int n2[__alignof(struct nS) == 1 ? 1 : -1]; +extern int n1[(sizeof(struct nS) == 9) ? 1 : -1]; +extern int n2[(__alignof(struct nS) == 1) ? 1 : -1]; #endif // Packed attribute shouldn't be ignored for bit-field of char types. @@ -165,13 +165,13 @@ // // Additionally, test for pre-r254596 clang behavior on the PS4/PS5 targets. // They must maintain ABI backwards compatibility. -extern int o1[sizeof(struct packed_chars) == 9 ? 1 : -1]; -extern int o2[__alignof(struct packed_chars) == 1 ? 1 : -1]; +extern int o1[(sizeof(struct packed_chars) == 9) ? 1 : -1]; +extern int o2[(__alignof(struct packed_chars) == 1) ? 1 : -1]; #elif defined(_AIX) // On AIX, char bitfields have the same alignment as unsigned int. -extern int o1[sizeof(struct packed_chars) == 8 ? 1 : -1]; -extern int o2[__alignof(struct packed_chars) == 4 ? 1 : -1]; +extern int o1[(sizeof(struct packed_chars) == 8) ? 1 : -1]; +extern int o2[(__alignof(struct packed_chars) == 4) ? 1 : -1]; #else -extern int o1[sizeof(struct packed_chars) == 8 ? 1 : -1]; -extern int o2[__alignof(struct packed_chars) == 1 ? 1 : -1]; +extern int o1[(sizeof(struct packed_chars) == 8) ? 1 : -1]; +extern int o2[(__alignof(struct packed_chars) == 1) ? 1 : -1]; #endif diff --git a/clang/test/Sema/ucn-cstring.c b/clang/test/Sema/ucn-cstring.c --- a/clang/test/Sema/ucn-cstring.c +++ b/clang/test/Sema/ucn-cstring.c @@ -3,7 +3,7 @@ int printf(const char *, ...); int main(void) { - int a[sizeof("hello \u2192 \u2603 \u2190 world") == 24 ? 1 : -1]; + int a[(sizeof("hello \u2192 \u2603 \u2190 world") == 24) ? 1 : -1]; printf("%s (%zd)\n", "hello \u2192 \u2603 \u2190 world", sizeof("hello \u2192 \u2603 \u2190 world")); printf("%s (%zd)\n", "\U00010400\U0001D12B", sizeof("\U00010400\U0001D12B")); diff --git a/clang/test/Sema/unused-expr.c b/clang/test/Sema/unused-expr.c --- a/clang/test/Sema/unused-expr.c +++ b/clang/test/Sema/unused-expr.c @@ -36,7 +36,7 @@ // This shouldn't warn: the expr at the end of the stmtexpr really is used. int stmt_expr(int x, int y) { - return ({int _a = x, _b = y; _a > _b ? _a : _b; }); + return ({int _a = x, _b = y; (_a > _b) ? _a : _b; }); } void nowarn(unsigned char* a, unsigned char* b) diff --git a/clang/test/Sema/vector-init.c b/clang/test/Sema/vector-init.c --- a/clang/test/Sema/vector-init.c +++ b/clang/test/Sema/vector-init.c @@ -8,7 +8,7 @@ float4 foo2 = (float4){ 1.0, 2.0, 3.0, 4.0 , 5.0 }; // expected-warning{{excess elements in vector initializer}} float4 array[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; -int array_sizecheck[(sizeof(array) / sizeof(float4)) == 3 ? 1 : -1]; +int array_sizecheck[((sizeof(array) / sizeof(float4)) == 3) ? 1 : -1]; float4 array2[2] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 }; // expected-warning {{excess elements in array initializer}} @@ -31,7 +31,7 @@ // PR5265 typedef float __attribute__((ext_vector_type (3))) float3; -int test2[sizeof(float3) == sizeof(float4) ? 1 : -1]; +int test2[(sizeof(float3) == sizeof(float4)) ? 1 : -1]; // rdar://problem/8345836 typedef long long __attribute__((vector_size(16))) longlong2; diff --git a/clang/test/Sema/warn-unreachable.c b/clang/test/Sema/warn-unreachable.c --- a/clang/test/Sema/warn-unreachable.c +++ b/clang/test/Sema/warn-unreachable.c @@ -129,7 +129,7 @@ } // Test case for PR 9774. Tests that dead code in macros aren't warned about. -#define MY_MAX(a,b) ((a) >= (b) ? (a) : (b)) +#define MY_MAX(a,b) (((a) >= (b)) ? (a) : (b)) void PR9774(int *s) { for (int i = 0; i < MY_MAX(2, 3); i++) // no-warning s[i] = 0; diff --git a/clang/test/Sema/wchar.c b/clang/test/Sema/wchar.c --- a/clang/test/Sema/wchar.c +++ b/clang/test/Sema/wchar.c @@ -26,7 +26,7 @@ #define WCHAR_T_TYPE int #endif -int check_wchar_size[sizeof(*L"") == sizeof(wchar_t) ? 1 : -1]; +int check_wchar_size[(sizeof(*L"") == sizeof(wchar_t)) ? 1 : -1]; void foo(void) { WCHAR_T_TYPE t1[] = L"x"; diff --git a/clang/test/Sema/zvector.c b/clang/test/Sema/zvector.c --- a/clang/test/Sema/zvector.c +++ b/clang/test/Sema/zvector.c @@ -65,19 +65,19 @@ __vector __bool long long bl5; // Verify operation of vec_step -int res_sc[vec_step(sc) == 16 ? 1 : -1]; -int res_uc[vec_step(uc) == 16 ? 1 : -1]; -int res_bc[vec_step(bc) == 16 ? 1 : -1]; -int res_ss[vec_step(ss) == 8 ? 1 : -1]; -int res_us[vec_step(us) == 8 ? 1 : -1]; -int res_bs[vec_step(bs) == 8 ? 1 : -1]; -int res_si[vec_step(si) == 4 ? 1 : -1]; -int res_ui[vec_step(ui) == 4 ? 1 : -1]; -int res_bi[vec_step(bi) == 4 ? 1 : -1]; -int res_sl[vec_step(sl) == 2 ? 1 : -1]; -int res_ul[vec_step(ul) == 2 ? 1 : -1]; -int res_bl[vec_step(bl) == 2 ? 1 : -1]; -int res_fd[vec_step(fd) == 2 ? 1 : -1]; +int res_sc[(vec_step(sc) == 16) ? 1 : -1]; +int res_uc[(vec_step(uc) == 16) ? 1 : -1]; +int res_bc[(vec_step(bc) == 16) ? 1 : -1]; +int res_ss[(vec_step(ss) == 8) ? 1 : -1]; +int res_us[(vec_step(us) == 8) ? 1 : -1]; +int res_bs[(vec_step(bs) == 8) ? 1 : -1]; +int res_si[(vec_step(si) == 4) ? 1 : -1]; +int res_ui[(vec_step(ui) == 4) ? 1 : -1]; +int res_bi[(vec_step(bi) == 4) ? 1 : -1]; +int res_sl[(vec_step(sl) == 2) ? 1 : -1]; +int res_ul[(vec_step(ul) == 2) ? 1 : -1]; +int res_bl[(vec_step(bl) == 2) ? 1 : -1]; +int res_fd[(vec_step(fd) == 2) ? 1 : -1]; void foo(void) diff --git a/clang/test/Sema/zvector2.c b/clang/test/Sema/zvector2.c --- a/clang/test/Sema/zvector2.c +++ b/clang/test/Sema/zvector2.c @@ -26,7 +26,7 @@ __vector float ff3; // Verify operation of vec_step -int res_ff[vec_step(ff) == 4 ? 1 : -1]; +int res_ff[(vec_step(ff) == 4) ? 1 : -1]; void foo(void) diff --git a/clang/test/SemaCUDA/amdgpu-attrs.cu b/clang/test/SemaCUDA/amdgpu-attrs.cu --- a/clang/test/SemaCUDA/amdgpu-attrs.cu +++ b/clang/test/SemaCUDA/amdgpu-attrs.cu @@ -121,8 +121,8 @@ __global__ void template_complex_flat_work_group_size_32_64() {} template __global__ void template_complex_flat_work_group_size_32_64<16, 16, 48>(); -unsigned ipow2(unsigned n) { return n == 0 ? 1 : 2 * ipow2(n - 1); } -constexpr unsigned ce_ipow2(unsigned n) { return n == 0 ? 1 : 2 * ce_ipow2(n - 1); } +unsigned ipow2(unsigned n) { return (n == 0) ? 1 : 2 * ipow2(n - 1); } +constexpr unsigned ce_ipow2(unsigned n) { return (n == 0) ? 1 : 2 * ce_ipow2(n - 1); } __attribute__((amdgpu_flat_work_group_size(ce_ipow2(5), ce_ipow2(6)))) __global__ void cexpr_flat_work_group_size_32_64() {} diff --git a/clang/test/SemaCXX/Inputs/std-compare.h b/clang/test/SemaCXX/Inputs/std-compare.h --- a/clang/test/SemaCXX/Inputs/std-compare.h +++ b/clang/test/SemaCXX/Inputs/std-compare.h @@ -128,8 +128,8 @@ // conversions constexpr operator partial_ordering() const noexcept { - return __value_ == 0 ? partial_ordering::equivalent - : (__value_ < 0 ? partial_ordering::less : partial_ordering::greater); + return (__value_ == 0) ? partial_ordering::equivalent + : ((__value_ < 0) ? partial_ordering::less : partial_ordering::greater); } // comparisons @@ -218,12 +218,12 @@ // conversions constexpr operator partial_ordering() const noexcept { - return __value_ == 0 ? partial_ordering::equivalent - : (__value_ < 0 ? partial_ordering::less : partial_ordering::greater); + return (__value_ == 0) ? partial_ordering::equivalent + : ((__value_ < 0) ? partial_ordering::less : partial_ordering::greater); } constexpr operator weak_ordering() const noexcept { - return __value_ == 0 ? weak_ordering::equivalent - : (__value_ < 0 ? weak_ordering::less : weak_ordering::greater); + return (__value_ == 0) ? weak_ordering::equivalent + : ((__value_ < 0) ? weak_ordering::less : weak_ordering::greater); } // comparisons diff --git a/clang/test/SemaCXX/__null.cpp b/clang/test/SemaCXX/__null.cpp --- a/clang/test/SemaCXX/__null.cpp +++ b/clang/test/SemaCXX/__null.cpp @@ -7,7 +7,7 @@ int i2 = __null; // Verify statically that __null is the right size - int a[sizeof(typeof(__null)) == sizeof(void*)? 1 : -1]; + int a[(sizeof(typeof(__null)) == sizeof(void*)) ? 1 : -1]; // Verify that null is evaluated as 0. int b[__null ? -1 : 1]; diff --git a/clang/test/SemaCXX/altivec.cpp b/clang/test/SemaCXX/altivec.cpp --- a/clang/test/SemaCXX/altivec.cpp +++ b/clang/test/SemaCXX/altivec.cpp @@ -18,19 +18,19 @@ vector int *pvi; - int res1[vec_step(arg1) == 8 ? 1 : -1]; - int res2[vec_step(vbc) == 16 ? 1 : -1]; - int res3[vec_step(vsc) == 16 ? 1 : -1]; - int res4[vec_step(vuc) == 16 ? 1 : -1]; - int res5[vec_step(vbs) == 8 ? 1 : -1]; - int res6[vec_step(vs) == 8 ? 1 : -1]; - int res7[vec_step(vus) == 8 ? 1 : -1]; - int res8[vec_step(vp) == 8 ? 1 : -1]; - int res9[vec_step(vbi) == 4 ? 1 : -1]; - int res10[vec_step(vi) == 4 ? 1 : -1]; - int res11[vec_step(vui) == 4 ? 1 : -1]; - int res12[vec_step(vf) == 4 ? 1 : -1]; - int res13[vec_step(*pvi) == 4 ? 1 : -1]; + int res1[(vec_step(arg1) == 8) ? 1 : -1]; + int res2[(vec_step(vbc) == 16) ? 1 : -1]; + int res3[(vec_step(vsc) == 16) ? 1 : -1]; + int res4[(vec_step(vuc) == 16) ? 1 : -1]; + int res5[(vec_step(vbs) == 8) ? 1 : -1]; + int res6[(vec_step(vs) == 8) ? 1 : -1]; + int res7[(vec_step(vus) == 8) ? 1 : -1]; + int res8[(vec_step(vp) == 8) ? 1 : -1]; + int res9[(vec_step(vbi) == 4) ? 1 : -1]; + int res10[(vec_step(vi) == 4) ? 1 : -1]; + int res11[(vec_step(vui) == 4) ? 1 : -1]; + int res12[(vec_step(vf) == 4) ? 1 : -1]; + int res13[(vec_step(*pvi) == 4) ? 1 : -1]; } void f(V4i a) diff --git a/clang/test/SemaCXX/array-bounds.cpp b/clang/test/SemaCXX/array-bounds.cpp --- a/clang/test/SemaCXX/array-bounds.cpp +++ b/clang/test/SemaCXX/array-bounds.cpp @@ -87,7 +87,7 @@ } #define SIZE 10 -#define ARR_IN_MACRO(flag, arr, idx) flag ? arr[idx] : 1 +#define ARR_IN_MACRO(flag, arr, idx) (flag ? arr[idx] : 1) int test_no_warn_macro_unreachable() { int arr[SIZE]; // expected-note {{array 'arr' declared here}} @@ -134,8 +134,8 @@ int test_sizeof_as_condition(int flag) { int arr[2] = { 0, 0 }; // expected-note {{array 'arr' declared here}} if (flag) - return sizeof(char) != sizeof(char) ? arr[2] : arr[1]; - return sizeof(char) == sizeof(char) ? arr[2] : arr[1]; // expected-warning {{array index 2 is past the end of the array (that has type 'int[2]')}} + return (sizeof(char) != sizeof(char)) ? arr[2] : arr[1]; + return (sizeof(char) == sizeof(char)) ? arr[2] : arr[1]; // expected-warning {{array index 2 is past the end of the array (that has type 'int[2]')}} } void test_switch() { diff --git a/clang/test/SemaCXX/bitfield-layout.cpp b/clang/test/SemaCXX/bitfield-layout.cpp --- a/clang/test/SemaCXX/bitfield-layout.cpp +++ b/clang/test/SemaCXX/bitfield-layout.cpp @@ -1,7 +1,7 @@ // RUN: %clang_cc1 %s -fsyntax-only -verify -triple=x86_64-apple-darwin10 -#define CHECK_SIZE(name, size) extern int name##1[sizeof(name) == size ? 1 : -1]; -#define CHECK_ALIGN(name, size) extern int name##2[__alignof(name) == size ? 1 : -1]; +#define CHECK_SIZE(name, size) extern int name##1[(sizeof(name) == size) ? 1 : -1]; +#define CHECK_ALIGN(name, size) extern int name##2[(__alignof(name) == size) ? 1 : -1]; // Simple tests. struct Test1 { diff --git a/clang/test/SemaCXX/builtin-classify-type.cpp b/clang/test/SemaCXX/builtin-classify-type.cpp --- a/clang/test/SemaCXX/builtin-classify-type.cpp +++ b/clang/test/SemaCXX/builtin-classify-type.cpp @@ -43,27 +43,27 @@ _Complex int complex_i; _Complex double complex_d; - int a1[__builtin_classify_type(f()) == void_type_class ? 1 : -1]; - int a2[__builtin_classify_type(i) == integer_type_class ? 1 : -1]; - int a3[__builtin_classify_type(c) == integer_type_class ? 1 : -1]; - int a4[__builtin_classify_type(enum_obj) == enumeral_type_class ? 1 : -1]; - int a5[__builtin_classify_type(b) == boolean_type_class ? 1 : -1]; - int a6[__builtin_classify_type(p) == pointer_type_class ? 1 : -1]; - int a7[__builtin_classify_type(r) == integer_type_class ? 1 : -1]; - int a8[__builtin_classify_type(&cl::baz) == offset_type_class ? 1 : -1]; - int a9[__builtin_classify_type(d) == real_type_class ? 1 : -1]; - int a10[__builtin_classify_type(f) == pointer_type_class ? 1 : -1]; - int a11[__builtin_classify_type(&cl::bar) == record_type_class ? 1 : -1]; - int a12[__builtin_classify_type(cl_obj) == record_type_class ? 1 : -1]; - int a13[__builtin_classify_type(u_obj) == union_type_class ? 1 : -1]; - int a14[__builtin_classify_type(arr) == pointer_type_class ? 1 : -1]; - int a15[__builtin_classify_type("abc") == pointer_type_class ? 1 : -1]; - int a16[__builtin_classify_type(block) == no_type_class ? 1 : -1]; - int a17[__builtin_classify_type(vec) == no_type_class ? 1 : -1]; - int a18[__builtin_classify_type(evec) == no_type_class ? 1 : -1]; - int a19[__builtin_classify_type(atomic_i) == integer_type_class ? 1 : -1]; - int a20[__builtin_classify_type(atomic_d) == real_type_class ? 1 : -1]; - int a21[__builtin_classify_type(complex_i) == complex_type_class ? 1 : -1]; - int a22[__builtin_classify_type(complex_d) == complex_type_class ? 1 : -1]; + int a1[(__builtin_classify_type(f()) == void_type_class) ? 1 : -1]; + int a2[(__builtin_classify_type(i) == integer_type_class) ? 1 : -1]; + int a3[(__builtin_classify_type(c) == integer_type_class) ? 1 : -1]; + int a4[(__builtin_classify_type(enum_obj) == enumeral_type_class) ? 1 : -1]; + int a5[(__builtin_classify_type(b) == boolean_type_class) ? 1 : -1]; + int a6[(__builtin_classify_type(p) == pointer_type_class) ? 1 : -1]; + int a7[(__builtin_classify_type(r) == integer_type_class) ? 1 : -1]; + int a8[(__builtin_classify_type(&cl::baz) == offset_type_class) ? 1 : -1]; + int a9[(__builtin_classify_type(d) == real_type_class) ? 1 : -1]; + int a10[(__builtin_classify_type(f) == pointer_type_class) ? 1 : -1]; + int a11[(__builtin_classify_type(&cl::bar) == record_type_class) ? 1 : -1]; + int a12[(__builtin_classify_type(cl_obj) == record_type_class) ? 1 : -1]; + int a13[(__builtin_classify_type(u_obj) == union_type_class) ? 1 : -1]; + int a14[(__builtin_classify_type(arr) == pointer_type_class) ? 1 : -1]; + int a15[(__builtin_classify_type("abc") == pointer_type_class) ? 1 : -1]; + int a16[(__builtin_classify_type(block) == no_type_class) ? 1 : -1]; + int a17[(__builtin_classify_type(vec) == no_type_class) ? 1 : -1]; + int a18[(__builtin_classify_type(evec) == no_type_class) ? 1 : -1]; + int a19[(__builtin_classify_type(atomic_i) == integer_type_class) ? 1 : -1]; + int a20[(__builtin_classify_type(atomic_d) == real_type_class) ? 1 : -1]; + int a21[(__builtin_classify_type(complex_i) == complex_type_class) ? 1 : -1]; + int a22[(__builtin_classify_type(complex_d) == complex_type_class) ? 1 : -1]; } diff --git a/clang/test/SemaCXX/constant-conversion.cpp b/clang/test/SemaCXX/constant-conversion.cpp --- a/clang/test/SemaCXX/constant-conversion.cpp +++ b/clang/test/SemaCXX/constant-conversion.cpp @@ -11,9 +11,9 @@ char warn2 = false ? 0 : nines(); // expected-warning@-1 {{implicit conversion from 'int' to 'char' changes value from 99999 to -97}} - char warn3 = param > 0 ? 0 : 99999; + char warn3 = (param > 0) ? 0 : 99999; // expected-warning@-1 {{implicit conversion from 'int' to 'char' changes value from 99999 to -97}} - char warn4 = param > 0 ? 0 : nines(); + char warn4 = (param > 0) ? 0 : nines(); // expected-warning@-1 {{implicit conversion from 'int' to 'char' changes value from 99999 to -97}} char ok1 = true ? 0 : 99999; diff --git a/clang/test/SemaCXX/constant-expression-cxx11.cpp b/clang/test/SemaCXX/constant-expression-cxx11.cpp --- a/clang/test/SemaCXX/constant-expression-cxx11.cpp +++ b/clang/test/SemaCXX/constant-expression-cxx11.cpp @@ -19,10 +19,10 @@ template constexpr T id(const T &t) { return t; } template constexpr T min(const T &a, const T &b) { - return a < b ? a : b; + return (a < b) ? a : b; } template constexpr T max(const T &a, const T &b) { - return a < b ? b : a; + return (a < b) ? b : a; } template constexpr T *begin(T (&xs)[N]) { return xs; } template constexpr T *end(T (&xs)[N]) { return xs + N; } @@ -166,11 +166,11 @@ } namespace Recursion { - constexpr int fib(int n) { return n > 1 ? fib(n-1) + fib(n-2) : n; } + constexpr int fib(int n) { return (n > 1) ? fib(n-1) + fib(n-2) : n; } static_assert(fib(11) == 89, ""); constexpr int gcd_inner(int a, int b) { - return b == 0 ? a : gcd_inner(b, a % b); + return (b == 0) ? a : gcd_inner(b, a % b); } constexpr int gcd(int a, int b) { return gcd_inner(max(a, b), min(a, b)); @@ -257,7 +257,7 @@ namespace Pointers { constexpr int f(int n, const int *a, const int *b, const int *c) { - return n == 0 ? 0 : *a + f(n-1, b, c, a); + return (n == 0) ? 0 : *a + f(n-1, b, c, a); } const int x = 1, y = 10, z = 100; @@ -277,7 +277,7 @@ constexpr int Twice(int (*F)(int), int n) { return F(F(n)); } constexpr int Quadruple(int n) { return Twice(Double, n); } constexpr auto Select(int n) -> int (*)(int) { - return n == 2 ? &Double : n == 3 ? &Triple : n == 4 ? &Quadruple : 0; + return (n == 2) ? &Double : ((n == 3) ? &Triple : ((n == 4) ? &Quadruple : 0)); } constexpr int Apply(int (*F)(int), int n) { return F(n); } // expected-note {{'F' evaluates to a null function pointer}} @@ -537,7 +537,7 @@ template constexpr auto Sum(Iter begin, Iter end) -> decltype(+*begin) { - return begin == end ? 0 : *begin + Sum(begin+1, end); + return (begin == end) ? 0 : *begin + Sum(begin+1, end); } constexpr int xs[] = { 1, 2, 3, 4, 5 }; @@ -597,7 +597,7 @@ return *p + (*p ? SumNonzero(p+1) : 0); } constexpr int CountZero(const int *p, const int *q) { - return p == q ? 0 : (*p == 0) + CountZero(p+1, q); + return (p == q) ? 0 : (*p == 0) + CountZero(p+1, q); } static_assert(SumNonzero(arr) == 6, ""); static_assert(CountZero(arr, arr + 40) == 36, ""); @@ -1570,7 +1570,7 @@ namespace RecursiveOpaqueExpr { template constexpr auto LastNonzero(Iter p, Iter q) -> decltype(+*p) { - return p != q ? (LastNonzero(p+1, q) ?: *p) : 0; // expected-warning {{GNU}} + return (p != q) ? (LastNonzero(p+1, q) ?: *p) : 0; // expected-warning {{GNU}} } constexpr int arr1[] = { 1, 0, 0, 3, 0, 2, 0, 4, 0, 0 }; @@ -1731,7 +1731,7 @@ }; constexpr A f(const A &a) { - return a.v == 0 ? throw a : a; + return (a.v == 0) ? throw a : a; } constexpr A a(4); @@ -1865,7 +1865,7 @@ namespace InitializerList { constexpr int sum(const int *b, const int *e) { - return b != e ? *b + sum(b+1, e) : 0; + return (b != e) ? *b + sum(b+1, e) : 0; } constexpr int sum(std::initializer_list ints) { return sum(ints.begin(), ints.end()); diff --git a/clang/test/SemaCXX/constant-expression-cxx14.cpp b/clang/test/SemaCXX/constant-expression-cxx14.cpp --- a/clang/test/SemaCXX/constant-expression-cxx14.cpp +++ b/clang/test/SemaCXX/constant-expression-cxx14.cpp @@ -754,7 +754,7 @@ char buffer[16] = {}; duff_copy(buffer, str, n); for (int i = 0; i != sizeof(buffer); ++i) - if (buffer[i] != (i < n ? str[i] : 0)) + if (buffer[i] != ((i < n) ? str[i] : 0)) return false; return true; } diff --git a/clang/test/SemaCXX/constant-expression-cxx2a.cpp b/clang/test/SemaCXX/constant-expression-cxx2a.cpp --- a/clang/test/SemaCXX/constant-expression-cxx2a.cpp +++ b/clang/test/SemaCXX/constant-expression-cxx2a.cpp @@ -32,7 +32,7 @@ struct A { int n; constexpr friend int operator<=>(const A &a, const A &b) { - return a.n < b.n ? -1 : a.n > b.n ? 1 : 0; + return (a.n < b.n) ? -1 : ((a.n > b.n) ? 1 : 0); } }; static_assert(A{1} <=> A{2} < 0); diff --git a/clang/test/SemaCXX/constexpr-depth.cpp b/clang/test/SemaCXX/constexpr-depth.cpp --- a/clang/test/SemaCXX/constexpr-depth.cpp +++ b/clang/test/SemaCXX/constexpr-depth.cpp @@ -2,7 +2,7 @@ // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s -DMAX=2 -fconstexpr-depth 2 // RUN: %clang -std=c++11 -fsyntax-only -Xclang -verify %s -DMAX=10 -fconstexpr-depth=10 -constexpr int depth(int n) { return n > 1 ? depth(n-1) : 0; } // expected-note {{exceeded maximum depth}} expected-note +{{}} +constexpr int depth(int n) { return (n > 1) ? depth(n-1) : 0; } // expected-note {{exceeded maximum depth}} expected-note +{{}} constexpr int kBad = depth(MAX + 1); // expected-error {{must be initialized by a constant expression}} expected-note {{in call to 'depth(}} constexpr int kGood = depth(MAX); diff --git a/clang/test/SemaCXX/constexpr-string.cpp b/clang/test/SemaCXX/constexpr-string.cpp --- a/clang/test/SemaCXX/constexpr-string.cpp +++ b/clang/test/SemaCXX/constexpr-string.cpp @@ -237,7 +237,7 @@ template auto foldResult(const Callable &, MetaValue *, MetaValue *) { - int (*maybeVLAPtr)[Callable{}(N) == ExpectedFoldResult + int (*maybeVLAPtr)[(Callable{}(N) == ExpectedFoldResult) ? GoodFoldArraySize : BadFoldArraySize] = 0; return foldResultImpl(maybeVLAPtr); diff --git a/clang/test/SemaCXX/constexpr-turing-cxx2a.cpp b/clang/test/SemaCXX/constexpr-turing-cxx2a.cpp --- a/clang/test/SemaCXX/constexpr-turing-cxx2a.cpp +++ b/clang/test/SemaCXX/constexpr-turing-cxx2a.cpp @@ -41,7 +41,7 @@ for (state = 0; state != halt; ++steps) { auto [val, dir, next_state] = tm[state][tape->val]; tape->val = val; - tape = (dir == L ? tape->left() : tape->right()); + tape = ((dir == L) ? tape->left() : tape->right()); state = next_state; } diff --git a/clang/test/SemaCXX/constexpr-turing.cpp b/clang/test/SemaCXX/constexpr-turing.cpp --- a/clang/test/SemaCXX/constexpr-turing.cpp +++ b/clang/test/SemaCXX/constexpr-turing.cpp @@ -19,10 +19,10 @@ constexpr Tape(const Tape &old, bool write) : l(old.l), val(write), r(old.r) {} constexpr Tape(const Tape &old, Dir dir) : - l(dir == L ? old.l ? old.l->l : 0 : &old), - val(dir == L ? old.l ? old.l->val : false + l((dir == L) ? old.l ? old.l->l : 0 : &old), + val((dir == L) ? old.l ? old.l->val : false : old.r ? old.r->val : false), - r(dir == R ? old.r ? old.r->r : 0 : &old) {} + r((dir == R) ? old.r ? old.r->r : 0 : &old) {} const Tape *l; bool val; const Tape *r; @@ -33,7 +33,7 @@ // Run turing machine 'tm' on tape 'tape' from state 'state'. Return number of // steps taken until halt. constexpr unsigned run(const State *tm, const Tape &tape, unsigned state) { - return state == halt ? 0 : + return (state == halt) ? 0 : run(tm, move(update(tape, tm[state][tape.val].tape), tm[state][tape.val].dir), tm[state][tape.val].next) + 1; diff --git a/clang/test/SemaCXX/cxx11-user-defined-literals.cpp b/clang/test/SemaCXX/cxx11-user-defined-literals.cpp --- a/clang/test/SemaCXX/cxx11-user-defined-literals.cpp +++ b/clang/test/SemaCXX/cxx11-user-defined-literals.cpp @@ -39,7 +39,7 @@ static_assert(4e6_kind3 == LitKind::Template, ""); constexpr const char *fractional_digits_impl(const char *p) { - return *p == '.' ? p + 1 : *p ? fractional_digits_impl(p + 1) : 0; + return (*p == '.') ? p + 1 : (*p ? fractional_digits_impl(p + 1) : 0); } constexpr const char *operator"" _fractional_digits(const char *p) { return fractional_digits_impl(p) ?: p; diff --git a/clang/test/SemaCXX/cxx1y-generic-lambdas-capturing.cpp b/clang/test/SemaCXX/cxx1y-generic-lambdas-capturing.cpp --- a/clang/test/SemaCXX/cxx1y-generic-lambdas-capturing.cpp +++ b/clang/test/SemaCXX/cxx1y-generic-lambdas-capturing.cpp @@ -15,7 +15,7 @@ void f(const T&, const int (&)[ODRUSE_SZ]) { } #define DEFINE_SELECTOR(x) \ - int selector_ ## x[sizeof(x) == ODRUSE_SZ ? ODRUSE_SZ : ODRUSE_SZ + 5] + int selector_ ## x[(sizeof(x) == ODRUSE_SZ) ? ODRUSE_SZ : ODRUSE_SZ + 5] #define F_CALL(x, a) f(x, selector_ ## a) @@ -41,8 +41,8 @@ auto L = [](auto a) -> void { auto M = [](char b) -> void { auto N = [](auto c) -> void { - int selector[sizeof(c) == 1 ? - (sizeof(b) == 1 ? 1 : 2) + int selector[(sizeof(c) == 1) ? + ((sizeof(b) == 1) ? 1 : 2) : 2 ]{}; }; diff --git a/clang/test/SemaCXX/cxx2a-adl-only-template-id.cpp b/clang/test/SemaCXX/cxx2a-adl-only-template-id.cpp --- a/clang/test/SemaCXX/cxx2a-adl-only-template-id.cpp +++ b/clang/test/SemaCXX/cxx2a-adl-only-template-id.cpp @@ -40,9 +40,9 @@ bool typo(int something) { // expected-note 4{{declared here}} // FIXME: We shouldn't suggest the N:: for an ADL call if the candidate can be found by ADL. some_logn_name<3>(q); // expected-error {{did you mean 'N::some_long_name'?}} - somethign < 3 ? h() > 4 : h(0); // expected-error {{did you mean 'something'}} + (somethign < 3) ? h() > 4 : h(0); // expected-error {{did you mean 'something'}} // This is parsed as a comparison on the left of a ?: expression. - somethign < 3 ? h() + 4 : h(0); // expected-error {{did you mean 'something'}} + (somethign < 3) ? h() + 4 : h(0); // expected-error {{did you mean 'something'}} // This is parsed as an ADL-only template-id call. somethign < 3 ? h() + 4 : h(0) >(0); // expected-error {{undeclared identifier 'somethign'}} bool k(somethign < 3); // expected-error {{did you mean 'something'}} diff --git a/clang/test/SemaCXX/dcl_init_aggr.cpp b/clang/test/SemaCXX/dcl_init_aggr.cpp --- a/clang/test/SemaCXX/dcl_init_aggr.cpp +++ b/clang/test/SemaCXX/dcl_init_aggr.cpp @@ -40,7 +40,7 @@ // C++ [dcl.init.aggr]p4 int x[] = { 1, 3, 5 }; -int x_sizecheck[(sizeof(x) / sizeof(int)) == 3? 1 : -1]; +int x_sizecheck[((sizeof(x) / sizeof(int)) == 3) ? 1 : -1]; int x2[] = { }; // expected-warning{{zero size arrays are an extension}} // C++ [dcl.init.aggr]p5 diff --git a/clang/test/SemaCXX/integer-overflow.cpp b/clang/test/SemaCXX/integer-overflow.cpp --- a/clang/test/SemaCXX/integer-overflow.cpp +++ b/clang/test/SemaCXX/integer-overflow.cpp @@ -5,9 +5,9 @@ typedef unsigned int uint32_t; // Check integer sizes. -int array64[sizeof(uint64_t) == 8 ? 1 : -1]; -int array32[sizeof(uint32_t) == 4 ? 1 : -1]; -int arrayint[sizeof(int) < sizeof(uint64_t) ? 1 : -1]; +int array64[(sizeof(uint64_t) == 8) ? 1 : -1]; +int array32[(sizeof(uint32_t) == 4) ? 1 : -1]; +int arrayint[(sizeof(int) < sizeof(uint64_t)) ? 1 : -1]; uint64_t f0(uint64_t); uint64_t f1(uint64_t, uint32_t); @@ -41,7 +41,7 @@ uint64_t not_overflow2 = (1ULL * ((uint64_t)(4608) * (1024 * 1024)) + 2ULL); // expected-warning@+1 2{{overflow in expression; result is 536870912 with type 'int'}} - overflow = 4608 * 1024 * 1024 ? 4608 * 1024 * 1024 : 0; + overflow = (4608 * 1024 * 1024) ? 4608 * 1024 * 1024 : 0; // expected-warning@+1 {{overflow in expression; result is 536870912 with type 'int'}} overflow = 0 ? 0 : 4608 * 1024 * 1024; diff --git a/clang/test/SemaCXX/issue547.cpp b/clang/test/SemaCXX/issue547.cpp --- a/clang/test/SemaCXX/issue547.cpp +++ b/clang/test/SemaCXX/issue547.cpp @@ -61,7 +61,7 @@ typedef void f2(int, double, ...) &&; typedef void f3(int, double, ...) const &; -int check0[classify_function::value == 2? 1 : -1]; -int check1[classify_function::value == 8? 1 : -1]; -int check2[classify_function::value == 9? 1 : -1]; -int check3[classify_function::value == 10? 1 : -1]; +int check0[(classify_function::value == 2) ? 1 : -1]; +int check1[(classify_function::value == 8) ? 1 : -1]; +int check2[(classify_function::value == 9) ? 1 : -1]; +int check3[(classify_function::value == 10) ? 1 : -1]; diff --git a/clang/test/SemaCXX/member-pointer-size.cpp b/clang/test/SemaCXX/member-pointer-size.cpp --- a/clang/test/SemaCXX/member-pointer-size.cpp +++ b/clang/test/SemaCXX/member-pointer-size.cpp @@ -10,7 +10,7 @@ int (A::*memberFunction)(); - typedef int assert1[sizeof(dataMember) == sizeof(ptrdiff_t) ? 1 : -1]; - typedef int assert2[sizeof(memberFunction) == sizeof(ptrdiff_t) * 2 ? 1 : -1]; + typedef int assert1[(sizeof(dataMember) == sizeof(ptrdiff_t)) ? 1 : -1]; + typedef int assert2[(sizeof(memberFunction) == sizeof(ptrdiff_t) * 2) ? 1 : -1]; } diff --git a/clang/test/SemaCXX/ms_wide_bitfield.cpp b/clang/test/SemaCXX/ms_wide_bitfield.cpp --- a/clang/test/SemaCXX/ms_wide_bitfield.cpp +++ b/clang/test/SemaCXX/ms_wide_bitfield.cpp @@ -7,4 +7,4 @@ bool d : 3; }; -int a[sizeof(A) == 1 ? 1 : -1]; +int a[(sizeof(A) == 1) ? 1 : -1]; diff --git a/clang/test/SemaCXX/offsetof.cpp b/clang/test/SemaCXX/offsetof.cpp --- a/clang/test/SemaCXX/offsetof.cpp +++ b/clang/test/SemaCXX/offsetof.cpp @@ -50,9 +50,9 @@ int z; }; -int derived1[__builtin_offsetof(Derived2, x) == 0? 1 : -1]; -int derived2[__builtin_offsetof(Derived2, y) == 4? 1 : -1]; -int derived3[__builtin_offsetof(Derived2, z) == 8? 1 : -1]; +int derived1[(__builtin_offsetof(Derived2, x) == 0) ? 1 : -1]; +int derived2[(__builtin_offsetof(Derived2, y) == 4) ? 1 : -1]; +int derived3[(__builtin_offsetof(Derived2, z) == 8) ? 1 : -1]; // offsetof referring to anonymous struct in base. // PR7769 @@ -65,7 +65,7 @@ struct bar : public foo { }; -int anonstruct[__builtin_offsetof(bar, x) == 0 ? 1 : -1]; +int anonstruct[(__builtin_offsetof(bar, x) == 0) ? 1 : -1]; struct LtoRCheck { int a[10]; diff --git a/clang/test/SemaCXX/pragma-pack.cpp b/clang/test/SemaCXX/pragma-pack.cpp --- a/clang/test/SemaCXX/pragma-pack.cpp +++ b/clang/test/SemaCXX/pragma-pack.cpp @@ -13,7 +13,7 @@ }; #pragma pack(pop) -int check[sizeof(Sub) == 5 ? 1 : -1]; + int check[(sizeof(Sub) == 5) ? 1 : -1]; } @@ -30,7 +30,7 @@ }; #pragma pack(pop) -int check[sizeof(Sub) == 13 ? 1 : -1]; + int check[(sizeof(Sub) == 13) ? 1 : -1]; } @@ -52,7 +52,7 @@ }; #pragma pack(pop) -int check1[__alignof(X) == 1 ? 1 : -1]; -int check2[__alignof(X) == 2 ? 1 : -1]; + int check1[(__alignof(X) == 1) ? 1 : -1]; + int check2[(__alignof(X) == 2) ? 1 : -1]; } diff --git a/clang/test/SemaCXX/primary-base.cpp b/clang/test/SemaCXX/primary-base.cpp --- a/clang/test/SemaCXX/primary-base.cpp +++ b/clang/test/SemaCXX/primary-base.cpp @@ -9,4 +9,4 @@ // of F. class F : virtual A, virtual C { }; -int sa[sizeof(F) == sizeof(A) ? 1 : -1]; +int sa[(sizeof(F) == sizeof(A)) ? 1 : -1]; diff --git a/clang/test/SemaCXX/short-wchar-sign.cpp b/clang/test/SemaCXX/short-wchar-sign.cpp --- a/clang/test/SemaCXX/short-wchar-sign.cpp +++ b/clang/test/SemaCXX/short-wchar-sign.cpp @@ -4,4 +4,4 @@ // expected-no-diagnostics // Check that short wchar_t is unsigned, and that regular wchar_t is not. -int test[(wchar_t(-1)= 1 ? 2 : -2]; // expected-error{{typedef redefinition with different types ('int[2]' vs 'int[1]')}} - typedef int n[C == 1 ? 1 : -1]; - typedef int n[C >= 1 ? 1 : -1]; + typedef int q[(C == 1) ? 1 : -1]; // expected-note{{previous definition is here}} + typedef int q[(C >= 1) ? 2 : -2]; // expected-error{{typedef redefinition with different types ('int[2]' vs 'int[1]')}} + typedef int n[(C == 1) ? 1 : -1]; + typedef int n[(C >= 1) ? 1 : -1]; } }; diff --git a/clang/test/SemaCXX/using-directive.cpp b/clang/test/SemaCXX/using-directive.cpp --- a/clang/test/SemaCXX/using-directive.cpp +++ b/clang/test/SemaCXX/using-directive.cpp @@ -28,7 +28,7 @@ char i; using namespace A; using namespace B; - int a[sizeof(i) == sizeof(char)? 1 : -1]; // okay + int a[(sizeof(i) == sizeof(char)) ? 1 : -1]; // okay } namespace B { int j; diff --git a/clang/test/SemaCXX/warn-thread-safety-analysis.cpp b/clang/test/SemaCXX/warn-thread-safety-analysis.cpp --- a/clang/test/SemaCXX/warn-thread-safety-analysis.cpp +++ b/clang/test/SemaCXX/warn-thread-safety-analysis.cpp @@ -2440,9 +2440,9 @@ bar.getFoo2(a + 1).a = 0; bar.getFoo2(a + 1).mu_.Unlock(); - (a > 0 ? fooArray[1] : fooArray[b]).mu_.Lock(); - (a > 0 ? fooArray[1] : fooArray[b]).a = 0; - (a > 0 ? fooArray[1] : fooArray[b]).mu_.Unlock(); + ((a > 0) ? fooArray[1] : fooArray[b]).mu_.Lock(); + ((a > 0) ? fooArray[1] : fooArray[b]).a = 0; + ((a > 0) ? fooArray[1] : fooArray[b]).mu_.Unlock(); fooFuncPtr().mu_.Lock(); fooFuncPtr().a = 0; @@ -2481,11 +2481,11 @@ // expected-note {{found near match 'getBarFoo(bar, a).mu_'}} getBarFoo(bar, a).mu_.Unlock(); - (a > 0 ? fooArray[1] : fooArray[b]).mu_.Lock(); - (a > 0 ? fooArray[b] : fooArray[c]).a = 0; // \ + ((a > 0) ? fooArray[1] : fooArray[b]).mu_.Lock(); + ((a > 0) ? fooArray[b] : fooArray[c]).a = 0; // \ // expected-warning {{writing variable 'a' requires holding mutex '((0 < a) ? fooArray[b] : fooArray[c]).mu_' exclusively}} \ // expected-note {{found near match '((0 < a) ? fooArray[1] : fooArray[b]).mu_'}} - (a > 0 ? fooArray[1] : fooArray[b]).mu_.Unlock(); + ((a > 0) ? fooArray[1] : fooArray[b]).mu_.Unlock(); } diff --git a/clang/test/SemaCXX/warn-unused-comparison.cpp b/clang/test/SemaCXX/warn-unused-comparison.cpp --- a/clang/test/SemaCXX/warn-unused-comparison.cpp +++ b/clang/test/SemaCXX/warn-unused-comparison.cpp @@ -93,14 +93,12 @@ { public: - X() : i(0) { } + X() : i(0) { } void foo() - { - throw - i == 0u ? - 5 : 6; - } + { + throw (i == 0u) ? 5 : 6; + } private: int i; diff --git a/clang/test/SemaCXX/warn-zero-nullptr-cxx20.cpp b/clang/test/SemaCXX/warn-zero-nullptr-cxx20.cpp --- a/clang/test/SemaCXX/warn-zero-nullptr-cxx20.cpp +++ b/clang/test/SemaCXX/warn-zero-nullptr-cxx20.cpp @@ -46,6 +46,6 @@ result = (a1 < a2); result = (a1 >= a2); int *ptr = 0; // expected-warning{{zero as null pointer constant}} - result = (a1 > (ptr == 0 ? a1 : a2)); // expected-warning{{zero as null pointer constant}} - result = (a1 > ((a1 > (ptr == 0 ? a1 : a2)) ? a1 : a2)); // expected-warning{{zero as null pointer constant}} + result = (a1 > ((ptr == 0) ? a1 : a2)); // expected-warning{{zero as null pointer constant}} + result = (a1 > ((a1 > ((ptr == 0) ? a1 : a2)) ? a1 : a2)); // expected-warning{{zero as null pointer constant}} } diff --git a/clang/test/SemaCXX/wchar_t.cpp b/clang/test/SemaCXX/wchar_t.cpp --- a/clang/test/SemaCXX/wchar_t.cpp +++ b/clang/test/SemaCXX/wchar_t.cpp @@ -12,7 +12,7 @@ // PR4502 wchar_t const c = L'c'; -int a[c == L'c' ? 1 : -1]; +int a[(c == L'c') ? 1 : -1]; // PR5917 diff --git a/clang/test/SemaObjC/conditional-expr-8.m b/clang/test/SemaObjC/conditional-expr-8.m --- a/clang/test/SemaObjC/conditional-expr-8.m +++ b/clang/test/SemaObjC/conditional-expr-8.m @@ -52,6 +52,6 @@ @implementation Truck - (NSObject *)bestGoable:(NSObject *)drivable value:(int)value{ - return value > 0 ? self : drivable; + return (value > 0) ? self : drivable; } @end diff --git a/clang/test/SemaObjC/enum-fixed-type.m b/clang/test/SemaObjC/enum-fixed-type.m --- a/clang/test/SemaObjC/enum-fixed-type.m +++ b/clang/test/SemaObjC/enum-fixed-type.m @@ -15,7 +15,7 @@ typedef enum : Integer { Enumerator1, Enumerator2 } Enumeration; -int array[sizeof(Enumeration) == sizeof(long)? 1 : -1]; +int array[(sizeof(Enumeration) == sizeof(long)) ? 1 : -1]; enum Color { Red, Green, Blue }; @@ -41,7 +41,7 @@ // typedef enum : long long { Bar = -1 } LongLongEnum; -int arr3[(long long)Bar == (long long)-1 ? 1 : -1]; +int arr3[((long long)Bar == (long long)-1) ? 1 : -1]; typedef enum : Integer { BaseElem } BaseEnum; typedef enum : BaseEnum { DerivedElem } DerivedEnum; // expected-error {{non-integral type 'BaseEnum' is an invalid underlying type}} diff --git a/clang/test/SemaObjC/exprs.m b/clang/test/SemaObjC/exprs.m --- a/clang/test/SemaObjC/exprs.m +++ b/clang/test/SemaObjC/exprs.m @@ -20,7 +20,7 @@ if (@encode(int) == "foo") { } // expected-warning {{result of comparison against @encode is unspecified}} } -#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; }) +#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); (__a < __b) ? __b : __a; }) void (^foo)(int, int) = ^(int x, int y) { int z = MAX(x, y); }; diff --git a/clang/test/SemaObjC/format-strings-objc.m b/clang/test/SemaObjC/format-strings-objc.m --- a/clang/test/SemaObjC/format-strings-objc.m +++ b/clang/test/SemaObjC/format-strings-objc.m @@ -268,7 +268,7 @@ // void testTypeOf(NSInteger dW, NSInteger dH) { - NSLog(@"dW %d dH %d",({ __typeof__(dW) __a = (dW); __a < 0 ? -__a : __a; }),({ __typeof__(dH) __a = (dH); __a < 0 ? -__a : __a; })); // expected-warning 2 {{values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead}} + NSLog(@"dW %d dH %d",({ __typeof__(dW) __a = (dW); (__a < 0) ? -__a : __a; }),({ __typeof__(dH) __a = (dH); (__a < 0) ? -__a : __a; })); // expected-warning 2 {{values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead}} } void testUnicode(void) { diff --git a/clang/test/SemaObjC/pragma-pack.m b/clang/test/SemaObjC/pragma-pack.m --- a/clang/test/SemaObjC/pragma-pack.m +++ b/clang/test/SemaObjC/pragma-pack.m @@ -12,6 +12,6 @@ int b; }; #pragma pack(pop) - typedef char check_[sizeof (struct x) == 5 ? 1 : -1]; + typedef char check_[(sizeof (struct x) == 5) ? 1 : -1]; } @end diff --git a/clang/test/SemaTemplate/ackermann.cpp b/clang/test/SemaTemplate/ackermann.cpp --- a/clang/test/SemaTemplate/ackermann.cpp +++ b/clang/test/SemaTemplate/ackermann.cpp @@ -35,5 +35,5 @@ }; }; -int g0[Ackermann<3, 4>::value == 125 ? 1 : -1]; +int g0[(Ackermann<3, 4>::value == 125) ? 1 : -1]; diff --git a/clang/test/SemaTemplate/address_space-dependent.cpp b/clang/test/SemaTemplate/address_space-dependent.cpp --- a/clang/test/SemaTemplate/address_space-dependent.cpp +++ b/clang/test/SemaTemplate/address_space-dependent.cpp @@ -53,7 +53,7 @@ template char *cmp(__attribute__((address_space(I))) char *x, __attribute__((address_space(J))) char *y) { - return x < y ? x : y; // expected-error {{comparison of distinct pointer types ('__attribute__((address_space(1))) char *' and '__attribute__((address_space(2))) char *')}} + return (x < y) ? x : y; // expected-error {{comparison of distinct pointer types ('__attribute__((address_space(1))) char *' and '__attribute__((address_space(2))) char *')}} } typedef void ft(void); diff --git a/clang/test/SemaTemplate/alignas.cpp b/clang/test/SemaTemplate/alignas.cpp --- a/clang/test/SemaTemplate/alignas.cpp +++ b/clang/test/SemaTemplate/alignas.cpp @@ -4,7 +4,7 @@ using size_t = decltype(sizeof(0)); template -constexpr T max(T t, U u) { return t > u ? t : u; } +constexpr T max(T t, U u) { return (t > u) ? t : u; } template constexpr auto max(T t, Ts ...ts) -> decltype(max(t, max(ts...))) { diff --git a/clang/test/SemaTemplate/constexpr-instantiate.cpp b/clang/test/SemaTemplate/constexpr-instantiate.cpp --- a/clang/test/SemaTemplate/constexpr-instantiate.cpp +++ b/clang/test/SemaTemplate/constexpr-instantiate.cpp @@ -257,7 +257,7 @@ namespace PR20090 { template constexpr T fact(T n) { - return n == 0 ? 1 : [=] { return n * fact(n - 1); }(); + return (n == 0) ? 1 : [=] { return n * fact(n - 1); }(); } static_assert(fact(0) == 1, ""); } diff --git a/clang/test/SemaTemplate/deduction.cpp b/clang/test/SemaTemplate/deduction.cpp --- a/clang/test/SemaTemplate/deduction.cpp +++ b/clang/test/SemaTemplate/deduction.cpp @@ -15,8 +15,8 @@ template struct X0i; template struct X0l; -int array_x0a[X0::value == 0? 1 : -1]; -int array_x0b[X0::value == 1? 1 : -1]; +int array_x0a[(X0::value == 0) ? 1 : -1]; +int array_x0b[(X0::value == 1) ? 1 : -1]; template struct is_same { diff --git a/clang/test/SemaTemplate/dependent-names.cpp b/clang/test/SemaTemplate/dependent-names.cpp --- a/clang/test/SemaTemplate/dependent-names.cpp +++ b/clang/test/SemaTemplate/dependent-names.cpp @@ -9,7 +9,7 @@ static A a; }; -int a0[sizeof(X::a) == sizeof(double) ? 1 : -1]; +int a0[(sizeof(X::a) == sizeof(double)) ? 1 : -1]; // PR4365. template class Q; diff --git a/clang/test/SemaTemplate/dependent-sized_array.cpp b/clang/test/SemaTemplate/dependent-sized_array.cpp --- a/clang/test/SemaTemplate/dependent-sized_array.cpp +++ b/clang/test/SemaTemplate/dependent-sized_array.cpp @@ -13,7 +13,7 @@ void f1() { int a0[] = {}; // expected-warning{{zero}} int a1[] = { 1, 2, 3, N }; - int a3[sizeof(a1)/sizeof(int) != 4? 1 : -1]; // expected-error{{negative}} + int a3[(sizeof(a1)/sizeof(int) != 4) ? 1 : -1]; // expected-error{{negative}} } namespace PR13788 { diff --git a/clang/test/SemaTemplate/dependent-template-recover.cpp b/clang/test/SemaTemplate/dependent-template-recover.cpp --- a/clang/test/SemaTemplate/dependent-template-recover.cpp +++ b/clang/test/SemaTemplate/dependent-template-recover.cpp @@ -58,7 +58,7 @@ void c(int = T::x < 3); void d(int = T::y > ()); // expected-error {{expected expression}} - for (int x = t < 3 ? 1 : 2; t > (); ++t) { // expected-error {{expected expression}} + for (int x = (t < 3) ? 1 : 2; t > (); ++t) { // expected-error {{expected expression}} } // FIXME: We shouldn't treat 'T::t' as a potential template-name here, diff --git a/clang/test/SemaTemplate/example-typelist.cpp b/clang/test/SemaTemplate/example-typelist.cpp --- a/clang/test/SemaTemplate/example-typelist.cpp +++ b/clang/test/SemaTemplate/example-typelist.cpp @@ -38,7 +38,7 @@ cons > > > unsigned_inttypes; -int length0[length::value == 4? 1 : -1]; +int length0[(length::value == 4) ? 1 : -1]; // metaprogram that reverses a list diff --git a/clang/test/SemaTemplate/ext-vector-type.cpp b/clang/test/SemaTemplate/ext-vector-type.cpp --- a/clang/test/SemaTemplate/ext-vector-type.cpp +++ b/clang/test/SemaTemplate/ext-vector-type.cpp @@ -87,8 +87,8 @@ typedef float __attribute__((ext_vector_type(2))) float2; typedef float __attribute__((ext_vector_type(4))) float4; - int array0[X0::value == 0? 1 : -1]; - int array1[X0::value == 1? 1 : -1]; - int array2[X0::value == 2? 1 : -1]; - int array3[X0::value == 3? 1 : -1]; + int array0[(X0::value == 0) ? 1 : -1]; + int array1[(X0::value == 1) ? 1 : -1]; + int array2[(X0::value == 2) ? 1 : -1]; + int array3[(X0::value == 3) ? 1 : -1]; } diff --git a/clang/test/SemaTemplate/friend-template.cpp b/clang/test/SemaTemplate/friend-template.cpp --- a/clang/test/SemaTemplate/friend-template.cpp +++ b/clang/test/SemaTemplate/friend-template.cpp @@ -320,7 +320,7 @@ A a; } template friend void foo(const A & a) { - int array[sizeof(T) == sizeof(U) ? -1 : 1]; // expected-error {{negative size}} + int array[(sizeof(T) == sizeof(U)) ? -1 : 1]; // expected-error {{negative size}} } }; diff --git a/clang/test/SemaTemplate/instantiate-attr.cpp b/clang/test/SemaTemplate/instantiate-attr.cpp --- a/clang/test/SemaTemplate/instantiate-attr.cpp +++ b/clang/test/SemaTemplate/instantiate-attr.cpp @@ -9,8 +9,8 @@ i16 x; }; }; -int a[sizeof(A) == 16 ? 1 : -1]; -int a2[sizeof(A::B) == 16 ? 1 : -1]; +int a[(sizeof(A) == 16) ? 1 : -1]; +int a2[(sizeof(A::B) == 16) ? 1 : -1]; // rdar://problem/8243419 namespace test1 { @@ -21,9 +21,9 @@ typedef A type; - int test0[sizeof(type) == 4 ? 1 : -1]; - int test1[__builtin_offsetof(type, a) == 0 ? 1 : -1]; - int test2[__builtin_offsetof(type, b) == 4 ? 1 : -1]; + int test0[(sizeof(type) == 4) ? 1 : -1]; + int test1[(__builtin_offsetof(type, a) == 0) ? 1 : -1]; + int test2[(__builtin_offsetof(type, b) == 4) ? 1 : -1]; } namespace test2 { @@ -32,5 +32,5 @@ type Member __attribute__ ((packed)); char x; }; - int test0[sizeof(fastscriptmember) == 5 ? 1 : -1]; + int test0[(sizeof(fastscriptmember) == 5) ? 1 : -1]; } diff --git a/clang/test/SemaTemplate/instantiate-declref-ice.cpp b/clang/test/SemaTemplate/instantiate-declref-ice.cpp --- a/clang/test/SemaTemplate/instantiate-declref-ice.cpp +++ b/clang/test/SemaTemplate/instantiate-declref-ice.cpp @@ -18,11 +18,11 @@ template const unsigned X0::value; -int array1[X0::value == sizeof(int)? 1 : -1]; +int array1[(X0::value == sizeof(int)) ? 1 : -1]; const unsigned& testX0() { return X0::value; } -int array2[X0::value == sizeof(int)? 1 : -1]; +int array2[(X0::value == sizeof(int)) ? 1 : -1]; template struct X1 { @@ -32,4 +32,4 @@ template const unsigned X1::value = sizeof(T); -int array3[X1::value == sizeof(int)? 1 : -1]; +int array3[(X1::value == sizeof(int)) ? 1 : -1]; diff --git a/clang/test/SemaTemplate/instantiate-expr-5.cpp b/clang/test/SemaTemplate/instantiate-expr-5.cpp --- a/clang/test/SemaTemplate/instantiate-expr-5.cpp +++ b/clang/test/SemaTemplate/instantiate-expr-5.cpp @@ -30,8 +30,8 @@ template void test_anon_union() { - int array1[__builtin_offsetof(AnonymousUnion, f) == 0? 1 : -1]; - int array2[__builtin_offsetof(AnonymousUnion, f) == 0? 1 : -1]; + int array1[(__builtin_offsetof(AnonymousUnion, f) == 0) ? 1 : -1]; + int array2[(__builtin_offsetof(AnonymousUnion, f) == 0) ? 1 : -1]; } template void test_anon_union(); diff --git a/clang/test/SemaTemplate/instantiate-field.cpp b/clang/test/SemaTemplate/instantiate-field.cpp --- a/clang/test/SemaTemplate/instantiate-field.cpp +++ b/clang/test/SemaTemplate/instantiate-field.cpp @@ -96,7 +96,7 @@ class B { public: B(const unsigned char i); - unsigned char value : (dim > 0 ? dim : 1); + unsigned char value : ((dim > 0) ? dim : 1); }; template diff --git a/clang/test/SemaTemplate/instantiate-static-var.cpp b/clang/test/SemaTemplate/instantiate-static-var.cpp --- a/clang/test/SemaTemplate/instantiate-static-var.cpp +++ b/clang/test/SemaTemplate/instantiate-static-var.cpp @@ -8,7 +8,7 @@ static const T value = 10 / Divisor; // expected-error{{in-class initializer for static data member is not a constant expression}} }; -int array1[X::value == 5? 1 : -1]; +int array1[(X::value == 5) ? 1 : -1]; X xi0; // expected-note{{in instantiation of template class 'X' requested here}} diff --git a/clang/test/SemaTemplate/instantiate-var-template.cpp b/clang/test/SemaTemplate/instantiate-var-template.cpp --- a/clang/test/SemaTemplate/instantiate-var-template.cpp +++ b/clang/test/SemaTemplate/instantiate-var-template.cpp @@ -31,7 +31,7 @@ static_assert(b == 1, ""); // expected-note {{in instantiation of}} template void f() { - int check[a == 0 ? 1 : -1]; // expected-error {{array with a negative size}} + int check[(a == 0) ? 1 : -1]; // expected-error {{array with a negative size}} } } diff --git a/clang/test/SemaTemplate/instantiation-dependence.cpp b/clang/test/SemaTemplate/instantiation-dependence.cpp --- a/clang/test/SemaTemplate/instantiation-dependence.cpp +++ b/clang/test/SemaTemplate/instantiation-dependence.cpp @@ -37,8 +37,8 @@ template using indirect_void_t = typename indirect_void_t_imp::type; template void foo() { - int check1[__is_void(indirect_void_t) == 0 ? 1 : -1]; // "ok", dependent - int check2[__is_void(void_t) == 0 ? 1 : -1]; // expected-error {{array with a negative size}} + int check1[(__is_void(indirect_void_t) == 0) ? 1 : -1]; // "ok", dependent + int check2[(__is_void(void_t) == 0) ? 1 : -1]; // expected-error {{array with a negative size}} } } diff --git a/clang/test/SemaTemplate/matrix-type.cpp b/clang/test/SemaTemplate/matrix-type.cpp --- a/clang/test/SemaTemplate/matrix-type.cpp +++ b/clang/test/SemaTemplate/matrix-type.cpp @@ -181,8 +181,8 @@ typedef float __attribute__((matrix_type(2, 3))) float2; typedef float __attribute__((matrix_type(4, 3))) float4; -int array0[X0::value == 0 ? 1 : -1]; -int array1[X0::value == 1 ? 1 : -1]; -int array2[X0::value == 2 ? 1 : -1]; -int array3[X0::value == 3 ? 1 : -1]; +int array0[(X0::value == 0) ? 1 : -1]; +int array1[(X0::value == 1) ? 1 : -1]; +int array2[(X0::value == 2) ? 1 : -1]; +int array3[(X0::value == 3) ? 1 : -1]; } // namespace Deduction diff --git a/clang/test/SemaTemplate/pragma-ms_struct.cpp b/clang/test/SemaTemplate/pragma-ms_struct.cpp --- a/clang/test/SemaTemplate/pragma-ms_struct.cpp +++ b/clang/test/SemaTemplate/pragma-ms_struct.cpp @@ -8,4 +8,4 @@ long long a; int b; }; -extern int arr[sizeof(foo<0>) == 16 ? 1 : -1]; +extern int arr[(sizeof(foo<0>) == 16) ? 1 : -1]; diff --git a/clang/test/SemaTemplate/temp_arg_template.cpp b/clang/test/SemaTemplate/temp_arg_template.cpp --- a/clang/test/SemaTemplate/temp_arg_template.cpp +++ b/clang/test/SemaTemplate/temp_arg_template.cpp @@ -120,7 +120,7 @@ // B // ? X x; - int check[x.value == 1234 ? 1 : -1]; + int check[(x.value == 1234) ? 1 : -1]; } }; diff --git a/clang/test/SemaTemplate/temp_class_order.cpp b/clang/test/SemaTemplate/temp_class_order.cpp --- a/clang/test/SemaTemplate/temp_class_order.cpp +++ b/clang/test/SemaTemplate/temp_class_order.cpp @@ -20,11 +20,11 @@ static const int value = 3; }; -int array0[X1::value == 0? 1 : -1]; -int array1[X1::value == 1? 1 : -1]; -int array2[X1::value == 2? 1 : -1]; +int array0[(X1::value == 0) ? 1 : -1]; +int array1[(X1::value == 1) ? 1 : -1]; +int array2[(X1::value == 2) ? 1 : -1]; typedef const int* CIP; -int array3[X1::value == 3? 1 : -1]; +int array3[(X1::value == 3) ? 1 : -1]; template struct X2 { }; diff --git a/clang/test/SemaTemplate/temp_class_spec.cpp b/clang/test/SemaTemplate/temp_class_spec.cpp --- a/clang/test/SemaTemplate/temp_class_spec.cpp +++ b/clang/test/SemaTemplate/temp_class_spec.cpp @@ -145,7 +145,7 @@ static const unsigned value = N; }; -int array_size0[get_array_size::value == 12? 1 : -1]; +int array_size0[(get_array_size::value == 12) ? 1 : -1]; template struct remove_extent { diff --git a/libcxx/include/__chrono/duration.h b/libcxx/include/__chrono/duration.h --- a/libcxx/include/__chrono/duration.h +++ b/libcxx/include/__chrono/duration.h @@ -194,7 +194,7 @@ return __lower; if (__lower_diff > __upper_diff) return __upper; - return __lower.count() & 1 ? __upper : __lower; + return (__lower.count() & 1) ? __upper : __lower; } #endif diff --git a/libcxx/include/strstream b/libcxx/include/strstream --- a/libcxx/include/strstream +++ b/libcxx/include/strstream @@ -300,7 +300,7 @@ _LIBCPP_INLINE_VISIBILITY ostrstream(char* __s, int __n, ios_base::openmode __mode = ios_base::out) : ostream(&__sb_), - __sb_(__s, __n, __s + (__mode & ios::app ? _VSTD::strlen(__s) : 0)) + __sb_(__s, __n, __s + ((__mode & ios::app) ? _VSTD::strlen(__s) : 0)) {} #ifndef _LIBCPP_CXX03_LANG @@ -360,7 +360,7 @@ _LIBCPP_INLINE_VISIBILITY strstream(char* __s, int __n, ios_base::openmode __mode = ios_base::in | ios_base::out) : iostream(&__sb_), - __sb_(__s, __n, __s + (__mode & ios::app ? _VSTD::strlen(__s) : 0)) + __sb_(__s, __n, __s + ((__mode & ios::app) ? _VSTD::strlen(__s) : 0)) {} #ifndef _LIBCPP_CXX03_LANG diff --git a/libcxx/src/filesystem/operations.cpp b/libcxx/src/filesystem/operations.cpp --- a/libcxx/src/filesystem/operations.cpp +++ b/libcxx/src/filesystem/operations.cpp @@ -116,7 +116,7 @@ PosPtr peek() const noexcept { auto TkEnd = getNextTokenStartPos(); auto End = getAfterBack(); - return TkEnd == End ? nullptr : TkEnd; + return (TkEnd == End) ? nullptr : TkEnd; } void increment() noexcept { @@ -311,7 +311,7 @@ PosPtr consumeAllSeparators(PosPtr P, PosPtr End) const noexcept { if (P == nullptr || P == End || !isSeparator(*P)) return nullptr; - const int Inc = P < End ? 1 : -1; + const int Inc = (P < End) ? 1 : -1; P += Inc; while (P != End && isSeparator(*P)) P += Inc; @@ -337,7 +337,7 @@ PosPtr Start = P; if (P == nullptr || P == End || isSeparator(*P)) return nullptr; - const int Inc = P < End ? 1 : -1; + const int Inc = (P < End) ? 1 : -1; P += Inc; while (P != End && !isSeparator(*P)) P += Inc; diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp @@ -1673,7 +1673,7 @@ break; } } - return frm_nxt == frm_end ? ok : partial; + return (frm_nxt == frm_end) ? ok : partial; } codecvt::result @@ -1718,7 +1718,7 @@ } } frm_nxt = frm; - return frm_nxt == frm_end ? ok : partial; + return (frm_nxt == frm_end) ? ok : partial; } if (n == size_t(-1)) return error; @@ -1739,7 +1739,7 @@ break; } } - return frm_nxt == frm_end ? ok : partial; + return (frm_nxt == frm_end) ? ok : partial; } codecvt::result @@ -1806,7 +1806,7 @@ int codecvt::do_max_length() const noexcept { - return __l_ == 0 ? 1 : static_cast(__libcpp_mb_cur_max_l(__l_)); + return (__l_ == 0) ? 1 : static_cast(__libcpp_mb_cur_max_l(__l_)); } #endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS @@ -2097,7 +2097,7 @@ return codecvt_base::error; } } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -2218,7 +2218,7 @@ return codecvt_base::error; } } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -2488,7 +2488,7 @@ return codecvt_base::error; } } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -2713,7 +2713,7 @@ return codecvt_base::error; } } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -2872,7 +2872,7 @@ frm_nxt += 4; } } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -3004,7 +3004,7 @@ frm_nxt += 4; } } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -3098,7 +3098,7 @@ *to_nxt = c1; frm_nxt += 2; } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static @@ -3172,7 +3172,7 @@ *to_nxt = c1; frm_nxt += 2; } - return frm_nxt < frm_end ? codecvt_base::partial : codecvt_base::ok; + return (frm_nxt < frm_end) ? codecvt_base::partial : codecvt_base::ok; } static diff --git a/libcxx/src/memory_resource.cpp b/libcxx/src/memory_resource.cpp --- a/libcxx/src/memory_resource.cpp +++ b/libcxx/src/memory_resource.cpp @@ -361,8 +361,8 @@ } void* result = __fixed_pools_[i].__try_allocate_from_vacancies(); if (result == nullptr) { - auto min = [](size_t a, size_t b) { return a < b ? a : b; }; - auto max = [](size_t a, size_t b) { return a < b ? b : a; }; + auto min = [](size_t a, size_t b) { return (a < b) ? a : b; }; + auto max = [](size_t a, size_t b) { return (a < b) ? b : a; }; size_t prev_chunk_size_in_bytes = __fixed_pools_[i].__previous_chunk_size_in_bytes(); size_t prev_chunk_size_in_blocks = prev_chunk_size_in_bytes >> __log2_pool_block_size(i); diff --git a/libcxx/src/ryu/d2fixed.cpp b/libcxx/src/ryu/d2fixed.cpp --- a/libcxx/src/ryu/d2fixed.cpp +++ b/libcxx/src/ryu/d2fixed.cpp @@ -272,7 +272,7 @@ bool __nonzero = false; if (__e2 >= -52) { - const uint32_t __idx = __e2 < 0 ? 0 : __indexForExponent(static_cast(__e2)); + const uint32_t __idx = (__e2 < 0) ? 0 : __indexForExponent(static_cast(__e2)); const uint32_t __p10bits = __pow10BitsForIndex(__idx); const int32_t __len = static_cast(__lengthForIndex(__idx)); for (int32_t __i = __len - 1; __i >= 0; --__i) { @@ -468,7 +468,7 @@ uint32_t __availableDigits = 0; int32_t __exp = 0; if (__e2 >= -52) { - const uint32_t __idx = __e2 < 0 ? 0 : __indexForExponent(static_cast(__e2)); + const uint32_t __idx = (__e2 < 0) ? 0 : __indexForExponent(static_cast(__e2)); const uint32_t __p10bits = __pow10BitsForIndex(__idx); const int32_t __len = static_cast(__lengthForIndex(__idx)); for (int32_t __i = __len - 1; __i >= 0; --__i) { @@ -640,7 +640,7 @@ _Sign_character = '+'; } - const int _Exponent_part_length = __exp >= 100 + const int _Exponent_part_length = (__exp >= 100) ? 5 // "e+NNN" : 4; // "e+NN" diff --git a/libcxx/src/ryu/f2s.cpp b/libcxx/src/ryu/f2s.cpp --- a/libcxx/src/ryu/f2s.cpp +++ b/libcxx/src/ryu/f2s.cpp @@ -393,7 +393,7 @@ _LIBCPP_ASSERT(_Data[_Idx] == 0, ""); } - const uint32_t _Data_olength = _Data[0] >= 1000000000 ? 10 : __decimalLength9(_Data[0]); + const uint32_t _Data_olength = (_Data[0] >= 1000000000) ? 10 : __decimalLength9(_Data[0]); const uint32_t _Total_fixed_length = _Data_olength + 9 * _Filled_blocks; if (_Last - _First < static_cast(_Total_fixed_length)) { diff --git a/libcxx/test/libcxx/algorithms/nth_element_stability.pass.cpp b/libcxx/test/libcxx/algorithms/nth_element_stability.pass.cpp --- a/libcxx/test/libcxx/algorithms/nth_element_stability.pass.cpp +++ b/libcxx/test/libcxx/algorithms/nth_element_stability.pass.cpp @@ -32,7 +32,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = (i % 2 ? i : kSize / 2 + i); + v[i].value = ((i % 2) ? i : kSize / 2 + i); } std::__nth_element(v.begin(), v.begin() + kSize / 2, v.end(), std::less()); return v; @@ -43,7 +43,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = (i % 2 ? i : kSize / 2 + i); + v[i].value = ((i % 2) ? i : kSize / 2 + i); } auto deterministic_v = deterministic(); std::nth_element(v.begin(), v.begin() + kSize / 2, v.end()); @@ -61,7 +61,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = (i % 2 ? i : kSize / 2 + i); + v[i].value = ((i % 2) ? i : kSize / 2 + i); } auto snapshot_v = v; auto snapshot_custom_v = v; diff --git a/libcxx/test/libcxx/algorithms/partial_sort_stability.pass.cpp b/libcxx/test/libcxx/algorithms/partial_sort_stability.pass.cpp --- a/libcxx/test/libcxx/algorithms/partial_sort_stability.pass.cpp +++ b/libcxx/test/libcxx/algorithms/partial_sort_stability.pass.cpp @@ -32,7 +32,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = (i % 2 ? 1 : kSize / 2 + i); + v[i].value = ((i % 2) ? 1 : kSize / 2 + i); } auto comp = std::less(); std::__partial_sort_impl(v.begin(), v.begin() + kSize / 2, v.end(), comp); @@ -44,7 +44,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = (i % 2 ? 1 : kSize / 2 + i); + v[i].value = ((i % 2) ? 1 : kSize / 2 + i); } auto deterministic_v = deterministic(); std::partial_sort(v.begin(), v.begin() + kSize / 2, v.end()); @@ -62,7 +62,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = (i % 2 ? 1 : kSize / 2 + i); + v[i].value = ((i % 2) ? 1 : kSize / 2 + i); } auto snapshot_v = v; auto snapshot_custom_v = v; diff --git a/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp b/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp --- a/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp +++ b/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp @@ -32,7 +32,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = kSize / 2 - i * (i % 2 ? -1 : 1); + v[i].value = kSize / 2 - i * ((i % 2) ? -1 : 1); } std::less comp; std::__sort_dispatch(v.begin(), v.end(), comp); @@ -44,7 +44,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = kSize / 2 - i * (i % 2 ? -1 : 1); + v[i].value = kSize / 2 - i * ((i % 2) ? -1 : 1); } auto deterministic_v = deterministic(); std::sort(v.begin(), v.end()); @@ -62,7 +62,7 @@ std::vector v; v.resize(kSize); for (int i = 0; i < kSize; ++i) { - v[i].value = kSize / 2 - i * (i % 2 ? -1 : 1); + v[i].value = kSize / 2 - i * ((i % 2) ? -1 : 1); } auto snapshot_v = v; auto snapshot_custom_v = v; diff --git a/libcxxabi/src/cxa_default_handlers.cpp b/libcxxabi/src/cxa_default_handlers.cpp --- a/libcxxabi/src/cxa_default_handlers.cpp +++ b/libcxxabi/src/cxa_default_handlers.cpp @@ -55,10 +55,9 @@ if (!__isOurExceptionClass(unwind_exception)) abort_message("terminating due to %s foreign exception", cause); - void* thrown_object = - __getExceptionClass(unwind_exception) == kOurDependentExceptionClass ? - ((__cxa_dependent_exception*)exception_header)->primaryException : - exception_header + 1; + void* thrown_object = (__getExceptionClass(unwind_exception) == kOurDependentExceptionClass) + ? ((__cxa_dependent_exception*)exception_header)->primaryException + : exception_header + 1; const __shim_type_info* thrown_type = static_cast(exception_header->exceptionType); auto name = demangle(thrown_type->name()); diff --git a/libcxxabi/src/cxa_demangle.cpp b/libcxxabi/src/cxa_demangle.cpp --- a/libcxxabi/src/cxa_demangle.cpp +++ b/libcxxabi/src/cxa_demangle.cpp @@ -402,6 +402,6 @@ if (Status) *Status = InternalStatus; - return InternalStatus == demangle_success ? Buf : nullptr; + return (InternalStatus == demangle_success) ? Buf : nullptr; } } // __cxxabiv1 diff --git a/libcxxabi/src/cxa_exception.cpp b/libcxxabi/src/cxa_exception.cpp --- a/libcxxabi/src/cxa_exception.cpp +++ b/libcxxabi/src/cxa_exception.cpp @@ -455,8 +455,8 @@ if (native_exception) { // Increment the handler count, removing the flag about being rethrown - exception_header->handlerCount = exception_header->handlerCount < 0 ? - -exception_header->handlerCount + 1 : exception_header->handlerCount + 1; + exception_header->handlerCount = (exception_header->handlerCount < 0) ? -exception_header->handlerCount + 1 + : exception_header->handlerCount + 1; // place the exception on the top of the stack if it's not already // there by a previous rethrow if (exception_header != globals->caughtExceptions) diff --git a/libcxxabi/src/cxa_personality.cpp b/libcxxabi/src/cxa_personality.cpp --- a/libcxxabi/src/cxa_personality.cpp +++ b/libcxxabi/src/cxa_personality.cpp @@ -718,9 +718,7 @@ if (actionEntry == 0) { // Found a cleanup - results.reason = actions & _UA_SEARCH_PHASE - ? _URC_CONTINUE_UNWIND - : _URC_HANDLER_FOUND; + results.reason = (actions & _UA_SEARCH_PHASE) ? _URC_CONTINUE_UNWIND : _URC_HANDLER_FOUND; return; } // Convert 1-based byte offset into @@ -832,9 +830,8 @@ // End of action list. If this is phase 2 and we have found // a cleanup (ttypeIndex=0), return _URC_HANDLER_FOUND; // otherwise return _URC_CONTINUE_UNWIND. - results.reason = hasCleanup && actions & _UA_CLEANUP_PHASE - ? _URC_HANDLER_FOUND - : _URC_CONTINUE_UNWIND; + results.reason = + (hasCleanup && (actions & _UA_CLEANUP_PHASE)) ? _URC_HANDLER_FOUND : _URC_CONTINUE_UNWIND; return; } // Go to next action @@ -1243,10 +1240,9 @@ { const __shim_type_info* excpType = static_cast(new_exception_header->exceptionType); - adjustedPtr = - __getExceptionClass(&new_exception_header->unwindHeader) == kOurDependentExceptionClass ? - ((__cxa_dependent_exception*)new_exception_header)->primaryException : - new_exception_header + 1; + adjustedPtr = (__getExceptionClass(&new_exception_header->unwindHeader) == kOurDependentExceptionClass) + ? ((__cxa_dependent_exception*)new_exception_header)->primaryException + : new_exception_header + 1; if (!exception_spec_can_catch(ttypeIndex, classInfo, ttypeEncoding, excpType, adjustedPtr, unwind_exception, base)) diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -1306,7 +1306,7 @@ const Node *getSyntaxNode(OutputBuffer &OB) const override { initializePackExpansion(OB); size_t Idx = OB.CurrentPackIndex; - return Idx < Data.size() ? Data[Idx]->getSyntaxNode(OB) : this; + return (Idx < Data.size()) ? Data[Idx]->getSyntaxNode(OB) : this; } void printLeft(OutputBuffer &OB) const override { @@ -2499,7 +2499,7 @@ return false; } - char consume() { return First != Last ? *First++ : '\0'; } + char consume() { return (First != Last) ? *First++ : '\0'; } char look(unsigned Lookahead = 0) const { if (static_cast(Last - First) <= Lookahead)