diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index a30ab27566ec3..11b490a0928e6 100644 --- a/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1355,9 +1355,6 @@ def warn_pragma_acc_ignored DefaultIgnore; def err_acc_unexpected_directive : Error<"unexpected OpenACC directive %select{|'#pragma acc %1'}0">; -def warn_pragma_acc_unimplemented - : Warning<"OpenACC directives not yet implemented, pragma ignored">, - InGroup; def err_acc_invalid_directive : Error<"invalid OpenACC directive %select{%1|'%1 %2'}0">; def err_acc_invalid_clause : Error<"invalid OpenACC clause %0">; diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 935d94e38cc37..ce619d2996f20 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -12186,4 +12186,15 @@ def err_wasm_builtin_arg_must_match_table_element_type : Error < "%ordinal0 argument must match the element type of the WebAssembly table in the %ordinal1 argument">; def err_wasm_builtin_arg_must_be_integer_type : Error < "%ordinal0 argument must be an integer">; + +// OpenACC diagnostics. +def warn_acc_construct_unimplemented + : Warning<"OpenACC construct '%0' not yet implemented, pragma ignored">, + InGroup; +def warn_acc_clause_unimplemented + : Warning<"OpenACC clause '%0' not yet implemented, clause ignored">, + InGroup; +def err_acc_construct_appertainment + : Error<"OpenACC construct '%0' cannot be used here; it can only " + "be used in a statement context">; } // end of sema component. diff --git a/clang/lib/Parse/ParseOpenACC.cpp b/clang/lib/Parse/ParseOpenACC.cpp index 8157656246873..10bdd8e9f7448 100644 --- a/clang/lib/Parse/ParseOpenACC.cpp +++ b/clang/lib/Parse/ParseOpenACC.cpp @@ -1182,7 +1182,6 @@ Parser::OpenACCDirectiveParseInfo Parser::ParseOpenACCDirective() { // Parses the list of clauses, if present. ParseOpenACCClauseList(DirKind); - Diag(getCurToken(), diag::warn_pragma_acc_unimplemented); assert(Tok.is(tok::annot_pragma_openacc_end) && "Didn't parse all OpenACC Clauses"); SourceLocation EndLoc = ConsumeAnnotationToken(); diff --git a/clang/lib/Sema/SemaOpenACC.cpp b/clang/lib/Sema/SemaOpenACC.cpp index dc53084543390..4dc36ce08bd21 100644 --- a/clang/lib/Sema/SemaOpenACC.cpp +++ b/clang/lib/Sema/SemaOpenACC.cpp @@ -11,16 +11,35 @@ /// //===----------------------------------------------------------------------===// +#include "clang/Basic/DiagnosticSema.h" #include "clang/Basic/OpenACCKinds.h" #include "clang/Sema/Sema.h" using namespace clang; bool Sema::ActOnOpenACCClause(OpenACCClauseKind ClauseKind, SourceLocation StartLoc) { - return true; + if (ClauseKind == OpenACCClauseKind::Invalid) + return false; + // For now just diagnose that it is unsupported and leave the parsing to do + // whatever it can do. This function will eventually need to start returning + // some sort of Clause AST type, but for now just return true/false based on + // success. + return Diag(StartLoc, diag::warn_acc_clause_unimplemented) << ClauseKind; } void Sema::ActOnOpenACCConstruct(OpenACCDirectiveKind K, - SourceLocation StartLoc) {} + SourceLocation StartLoc) { + switch (K) { + case OpenACCDirectiveKind::Invalid: + // Nothing to do here, an invalid kind has nothing we can check here. We + // want to continue parsing clauses as far as we can, so we will just + // ensure that we can still work and don't check any construct-specific + // rules anywhere. + break; + default: + Diag(StartLoc, diag::warn_acc_construct_unimplemented) << K; + break; + } +} bool Sema::ActOnStartOpenACCStmtDirective(OpenACCDirectiveKind K, SourceLocation StartLoc) { diff --git a/clang/test/ParserOpenACC/parse-cache-construct.c b/clang/test/ParserOpenACC/parse-cache-construct.c index 093587f37df4f..fd161c03c09f7 100644 --- a/clang/test/ParserOpenACC/parse-cache-construct.c +++ b/clang/test/ParserOpenACC/parse-cache-construct.c @@ -13,32 +13,32 @@ void func() { for (int i = 0; i < 10; ++i) { // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache } for (int i = 0; i < 10; ++i) { // expected-error@+3{{expected '('}} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache clause list } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache() } for (int i = 0; i < 10; ++i) { // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache() clause-list } for (int i = 0; i < 10; ++i) { // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache( } @@ -46,25 +46,25 @@ void func() { // expected-error@+4{{use of undeclared identifier 'invalid'}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(invalid } for (int i = 0; i < 10; ++i) { // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(ArrayPtr } for (int i = 0; i < 10; ++i) { // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(invalid) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(ArrayPtr) } @@ -74,7 +74,7 @@ void func() { // expected-note@+4{{to match this '['}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(ArrayPtr[ } @@ -82,7 +82,7 @@ void func() { // expected-error@+4{{expected expression}} // expected-error@+3{{expected ']'}} // expected-note@+2{{to match this '['}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(ArrayPtr[, 5) } @@ -90,12 +90,12 @@ void func() { // expected-error@+4{{expected expression}} // expected-error@+3{{expected ']'}} // expected-note@+2{{to match this '['}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Array[) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Array[*readonly]) } @@ -105,55 +105,55 @@ void func() { // expected-note@+4{{to match this '['}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Array[*readonly: } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{invalid tag 'devnum' on 'cache' directive}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(devnum:ArrayPtr) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{invalid tag 'invalid' on 'cache' directive}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(invalid:ArrayPtr) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:*readonly]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:*readonly], Array) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:*readonly], Array[*readonly:3]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5 + i:*readonly], Array[*readonly + i:3]) } @@ -161,36 +161,36 @@ void func() { // expected-error@+4{{expected expression}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:*readonly], } for (int i = 0; i < 10; ++i) { // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:*readonly],) } for (int i = 0; i < 10; ++i) { // expected-warning@+2{{left operand of comma operator has no effect}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5,6:*readonly]) } for (int i = 0; i < 10; ++i) { // expected-warning@+2{{left operand of comma operator has no effect}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:ArrayPtr[5:3, *readonly], ArrayPtr[0]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:s.foo) } for (int i = 0; i < 10; ++i) { // expected-warning@+2{{left operand of comma operator has no effect}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(readonly:s.Array[1,2]) } } diff --git a/clang/test/ParserOpenACC/parse-cache-construct.cpp b/clang/test/ParserOpenACC/parse-cache-construct.cpp index affe43d4b0f0b..f0a35824696d8 100644 --- a/clang/test/ParserOpenACC/parse-cache-construct.cpp +++ b/clang/test/ParserOpenACC/parse-cache-construct.cpp @@ -9,34 +9,34 @@ template void func() { char *ArrayPtr = getArrayPtr(); for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(ArrayPtr[T::value + I:I + 5], T::array[(i + T::value, 5): 6]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(NS::NSArray[NS::NSInt]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(NS::NSArray[NS::NSInt : NS::NSInt]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{use of undeclared identifier 'NSArray'; did you mean 'NS::NSArray'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(NSArray[NS::NSInt : NS::NSInt]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{use of undeclared identifier 'NSInt'; did you mean 'NS::NSInt'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(NS::NSArray[NSInt : NS::NSInt]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{use of undeclared identifier 'NSInt'; did you mean 'NS::NSInt'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(NS::NSArray[NS::NSInt : NSInt]) } } @@ -59,56 +59,56 @@ void use() { Members s; for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(s.array[s.value]) } HasMembersArray Arrs; for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[3].array[4]) } for (int i = 0; i < 10; ++i) { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[3].array[1:4]) } for (int i = 0; i < 10; ++i) { // FIXME: Once we have a new array-section type to represent OpenACC as // well, change this error message. // expected-error@+2{{OpenMP array section is not allowed here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[3:4].array[1:4]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{OpenMP array section is not allowed here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[3:4].array[4]) } for (int i = 0; i < 10; ++i) { // expected-error@+3{{expected ']'}} // expected-note@+2{{to match this '['}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[3:4:].array[4]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[:].array[4]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{expected unqualified-id}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[::].array[4]) } for (int i = 0; i < 10; ++i) { // expected-error@+4{{expected expression}} // expected-error@+3{{expected ']'}} // expected-note@+2{{to match this '['}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[: :].array[4]) } for (int i = 0; i < 10; ++i) { // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'cache' not yet implemented, pragma ignored}} #pragma acc cache(Arrs.MemArr[3:].array[4]) } func(); diff --git a/clang/test/ParserOpenACC/parse-clauses.c b/clang/test/ParserOpenACC/parse-clauses.c index 18eb0fc996cce..3468e160a39cb 100644 --- a/clang/test/ParserOpenACC/parse-clauses.c +++ b/clang/test/ParserOpenACC/parse-clauses.c @@ -4,371 +4,467 @@ void func() { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'finalize' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'enter data' not yet implemented, pragma ignored}} #pragma acc enter data finalize - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'finalize' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'finalize' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'enter data' not yet implemented, pragma ignored}} #pragma acc enter data finalize finalize + // expected-warning@+3{{OpenACC clause 'finalize' not yet implemented, clause ignored}} // expected-error@+2{{invalid OpenACC clause 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'enter data' not yet implemented, pragma ignored}} #pragma acc enter data finalize invalid + // expected-warning@+3{{OpenACC clause 'finalize' not yet implemented, clause ignored}} // expected-error@+2{{invalid OpenACC clause 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'enter data' not yet implemented, pragma ignored}} #pragma acc enter data finalize invalid invalid finalize - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'finalize' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'enter data' not yet implemented, pragma ignored}} #pragma acc enter data seq finalize - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'if_present' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'host_data' not yet implemented, pragma ignored}} #pragma acc host_data if_present - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'if_present' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'if_present' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'host_data' not yet implemented, pragma ignored}} #pragma acc host_data if_present, if_present - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+4{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'independent' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'auto' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop seq independent auto - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+4{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'independent' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'auto' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop seq, independent auto - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+4{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'independent' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'auto' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop seq independent, auto - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+4{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'independent' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'auto' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'kernels loop' not yet implemented, pragma ignored}} #pragma acc kernels loop seq independent auto - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+4{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'independent' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'auto' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop seq, independent auto - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+4{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'independent' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'auto' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel loop' not yet implemented, pragma ignored}} #pragma acc parallel loop seq independent, auto + {} // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop , seq - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop seq, - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse() for(;;){} - // expected-error@+3{{invalid tag 'unknown' on 'collapse' clause}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'unknown' on 'collapse' clause}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(unknown:) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(force:) for(;;){} - // expected-error@+2{{invalid tag 'unknown' on 'collapse' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid tag 'unknown' on 'collapse' clause}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(unknown:5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(force:5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(5) for(;;){} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(5, 6) for(;;){} } void DefaultClause() { - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop default for(;;){} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default seq for(;;){} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-warning@+3{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default, seq for(;;){} - // expected-error@+4{{expected identifier}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected identifier}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default( for(;;){} - // expected-error@+4{{invalid value for 'default' clause; expected 'present' or 'none'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{invalid value for 'default' clause; expected 'present' or 'none'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default( seq for(;;){} - // expected-error@+4{{expected identifier}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected identifier}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(, seq for(;;){} - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default) for(;;){} - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} -#pragma acc serial default) seq - for(;;){} - - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default), seq for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default() for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected identifier}} + // expected-warning@+3{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default() seq for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected identifier}} + // expected-warning@+3{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(), seq for(;;){} - // expected-error@+2{{invalid value for 'default' clause; expected 'present' or 'none'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid value for 'default' clause; expected 'present' or 'none'}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(invalid) for(;;){} - // expected-error@+2{{invalid value for 'default' clause; expected 'present' or 'none'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid value for 'default' clause; expected 'present' or 'none'}} + // expected-warning@+3{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(auto) seq for(;;){} - // expected-error@+2{{invalid value for 'default' clause; expected 'present' or 'none'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid value for 'default' clause; expected 'present' or 'none'}} + // expected-warning@+3{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(invalid), seq for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(none) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'default' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial default(present), seq for(;;){} } void IfClause() { - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop if for(;;){} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if seq for(;;){} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-warning@+3{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if, seq for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if( for(;;){} - // expected-error@+4{{use of undeclared identifier 'seq'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{use of undeclared identifier 'seq'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if( seq for(;;){} - // expected-error@+5{{expected expression}} - // expected-error@+4{{use of undeclared identifier 'seq'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+6{{expected expression}} + // expected-error@+5{{use of undeclared identifier 'seq'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if(, seq for(;;){} - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if) for(;;){} - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if) seq for(;;){} - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if), seq for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if() for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if() seq for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if(), seq for(;;){} - // expected-error@+2{{use of undeclared identifier 'invalid_expr'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid_expr'}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if(invalid_expr) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if() seq for(;;){} int i, j; - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if(i > j) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'if' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial if(1+5>3), seq for(;;){} } -void SyncClause() { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +void SelfClause() { + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self, seq for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self( for(;;){} - // expected-error@+4{{use of undeclared identifier 'seq'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{use of undeclared identifier 'seq'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self( seq for(;;){} - // expected-error@+5{{expected expression}} - // expected-error@+4{{use of undeclared identifier 'seq'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+6{{expected expression}} + // expected-error@+5{{use of undeclared identifier 'seq'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self(, seq for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self) for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self) seq for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self), seq for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self(), seq for(;;){} - // expected-error@+3{{expected expression}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self(,), seq for(;;){} - // expected-error@+2{{use of undeclared identifier 'invalid_expr'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'invalid_expr'}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop self(invalid_expr), seq for(;;){} int i, j; - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial self(i > j for(;;){} - // expected-error@+4{{use of undeclared identifier 'seq'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{use of undeclared identifier 'seq'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial self(i > j, seq for(;;){} - // expected-warning@+2{{left operand of comma operator has no effect}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{left operand of comma operator has no effect}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial self(i, j) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial self(i > j) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial self(1+5>3), seq for(;;){} } @@ -385,926 +481,1288 @@ struct HasMembersArray { void SelfUpdate() { struct Members s; - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'update' not yet implemented, pragma ignored}} #pragma acc update self for(;;){} - // expected-error@+2{{use of undeclared identifier 'zero'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'zero'}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'update' not yet implemented, pragma ignored}} #pragma acc update self(zero : s.array[s.value : 5], s.value), seq for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'self' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'update' not yet implemented, pragma ignored}} #pragma acc update self(s.array[s.value : 5], s.value), seq for(;;){} } void VarListClauses() { - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy, seq - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy) - // expected-error@+3{{expected '('}} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected '('}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy), seq - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy( - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(, seq - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy() - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(), seq struct Members s; struct HasMembersArray HasMem; - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(s.array[s.value]), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(s.array[s.value], s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[3].array[1]), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[3].array[1:4]), seq - // expected-error@+2{{OpenMP array section is not allowed here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{OpenMP array section is not allowed here}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[1:3].array[1]), seq - // expected-error@+2{{OpenMP array section is not allowed here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{OpenMP array section is not allowed here}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[1:3].array[1:2]), seq - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[:]), seq - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[::]), seq - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ']'}} - // expected-note@+2{{to match this '['}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+6{{expected expression}} + // expected-error@+5{{expected ']'}} + // expected-note@+4{{to match this '['}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[: :]), seq - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-warning@+3{{OpenACC clause 'copy' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copy(HasMem.MemArr[3:]), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'use_device' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial use_device(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'use_device' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial use_device(s.array[s.value : 5]), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'no_create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial no_create(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'no_create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial no_create(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'present' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial present(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'present' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial present(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'deviceptr' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial deviceptr(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'deviceptr' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial deviceptr(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'attach' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial attach(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'attach' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial attach(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'detach' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial detach(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'detach' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial detach(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'private' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial private(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'private' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial private(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'firstprivate' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial firstprivate(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'firstprivate' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial firstprivate(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'delete' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial delete(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'delete' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial delete(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'use_device' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial use_device(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'use_device' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial use_device(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'device_resident' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial device_resident(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'device_resident' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial device_resident(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'link' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial link(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'link' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial link(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'host' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial host(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'host' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial host(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'device' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial device(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'device' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial device(s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(s.array[s.value : 5], s.value), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(zero:s.array[s.value : 5], s.value), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(zero : s.array[s.value : 5], s.value), seq - // expected-error@+2{{use of undeclared identifier 'zero'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'zero'}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(zero s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'readonly' on 'copyout' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'readonly' on 'copyout' clause}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(readonly:s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'invalid' on 'copyout' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'copyout' clause}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(invalid:s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'invalid' on 'copyout' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'copyout' clause}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(invalid:s.array[s.value : 5], s.value), seq - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'invalid'}} + // expected-warning@+3{{OpenACC clause 'copyout' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyout(invalid s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(s.array[s.value : 5], s.value), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(zero:s.array[s.value : 5], s.value), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(zero : s.array[s.value : 5], s.value), seq - // expected-error@+2{{use of undeclared identifier 'zero'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'zero'}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(zero s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'readonly' on 'create' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'readonly' on 'create' clause}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(readonly:s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'invalid' on 'create' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'create' clause}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(invalid:s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'invalid' on 'create' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'create' clause}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(invalid:s.array[s.value : 5], s.value), seq - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'invalid'}} + // expected-warning@+3{{OpenACC clause 'create' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial create(invalid s.array[s.value : 5], s.value), seq - // expected-error@+2{{expected ','}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ','}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(s.array[s.value] s.array[s.value :5] ), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(s.array[s.value : 5], s.value), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(readonly:s.array[s.value : 5], s.value), seq - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(readonly : s.array[s.value : 5], s.value), seq - // expected-error@+2{{use of undeclared identifier 'readonly'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'readonly'}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(readonly s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'zero' on 'copyin' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'zero' on 'copyin' clause}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(zero :s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'invalid' on 'copyin' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'copyin' clause}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(invalid:s.array[s.value : 5], s.value), seq - // expected-error@+2{{invalid tag 'invalid' on 'copyin' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'copyin' clause}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(invalid:s.array[s.value : 5], s.value), seq - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'invalid'}} + // expected-warning@+3{{OpenACC clause 'copyin' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial copyin(invalid s.array[s.value : 5], s.value), seq } void ReductionClauseParsing() { char *Begin, *End; - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction - // expected-error@+3{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction() - // expected-error@+2{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(Begin) - // expected-error@+2{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(Begin, End) - // expected-error@+2{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{missing reduction operator, expected '+', '*', 'max', 'min', '&', '|', '^', '&&', or '||', follwed by a ':'}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(+:Begin) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(+:Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(*: Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(max : Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(min: Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(&: Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(|: Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(^: Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial seq, reduction(&&: Begin, End) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'reduction' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial reduction(||: Begin, End), seq } int returns_int(); void IntExprParsing() { - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length + {} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length() + {} - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length(invalid) + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length(5, 4) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length(5) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length(returns_int()) + {} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'num_gangs' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_gangs + {} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'num_gangs' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_gangs() + {} - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'num_gangs' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_gangs(invalid) + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'num_gangs' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_gangs(5, 4) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'num_gangs' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_gangs(5) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'num_gangs' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_gangs(returns_int()) + {} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'num_workers' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_workers + {} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'num_workers' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_workers() + {} - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'num_workers' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_workers(invalid) + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'num_workers' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_workers(5, 4) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'num_workers' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_workers(5) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'num_workers' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel num_workers(returns_int()) + {} - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'device_num' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init device_num - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'device_num' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init device_num() - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'device_num' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init device_num(invalid) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_num' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init device_num(5, 4) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'device_num' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init device_num(5) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'device_num' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init device_num(returns_int()) - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'default_async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set default_async - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'default_async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set default_async() - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'default_async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set default_async(invalid) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'default_async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set default_async(5, 4) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'default_async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set default_async(5) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'default_async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set default_async(returns_int()) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector() - // expected-error@+3{{invalid tag 'invalid' on 'vector' clause}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'vector' clause}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(invalid:) - // expected-error@+2{{invalid tag 'invalid' on 'vector' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid tag 'invalid' on 'vector' clause}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(invalid:5) - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(length:) - // expected-error@+3{{invalid tag 'num' on 'vector' clause}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'num' on 'vector' clause}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(num:) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(5, 4) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(length:6,4) - // expected-error@+4{{invalid tag 'num' on 'vector' clause}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{invalid tag 'num' on 'vector' clause}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(num:6,4) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(5) - // expected-error@+2{{invalid tag 'num' on 'vector' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid tag 'num' on 'vector' clause}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(num:5) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(length:5) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(returns_int()) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop vector(length:returns_int()) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker() - // expected-error@+3{{invalid tag 'invalid' on 'worker' clause}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'invalid' on 'worker' clause}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(invalid:) - // expected-error@+2{{invalid tag 'invalid' on 'worker' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid tag 'invalid' on 'worker' clause}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(invalid:5) - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(num:) - // expected-error@+3{{invalid tag 'length' on 'worker' clause}} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{invalid tag 'length' on 'worker' clause}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(length:) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(5, 4) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(num:6,4) - // expected-error@+4{{invalid tag 'length' on 'worker' clause}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{invalid tag 'length' on 'worker' clause}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(length:6,4) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(5) - // expected-error@+2{{invalid tag 'length' on 'worker' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid tag 'length' on 'worker' clause}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(length:5) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(num:5) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(returns_int()) - // expected-error@+2{{invalid tag 'length' on 'worker' clause}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid tag 'length' on 'worker' clause}} + // expected-warning@+2{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop worker(length:returns_int()) } void device_type() { - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype + {} - // expected-error@+4{{expected identifier}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected identifier}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type( - // expected-error@+4{{expected identifier}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+5{{expected identifier}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype( + {} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type() - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype() + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(* - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(* + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(ident + {} - // expected-error@+4{{expected ','}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected ','}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident ident2 - // expected-error@+4{{expected ','}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+5{{expected ','}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(ident ident2 + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident, ident2 - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(ident, ident2 + {} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident, ident2,) - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(ident, ident2,) + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(*,) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(*,) + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(*,ident) - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(*,ident) + {} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident, *) - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(ident, *) + {} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type("foo", 54) - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{expected identifier}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(31, "bar") + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident, auto, int, float) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel dtype(ident, auto, int, float) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{OpenACC clause 'device_type' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'dtype' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel device_type(ident, auto, int, float) dtype(ident, auto, int, float) + {} } #define acc_async_sync -1 void AsyncArgument() { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async + {} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async() + {} - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(invalid) + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(4, 3) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(returns_int()) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(5) + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(acc_async_sync) + {} } void Tile() { int* Foo; - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile( for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile() for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(, for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(,) for(;;){} - // expected-error@+2{{use of undeclared identifier 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'invalid'}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(returns_int(), *, invalid, *) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(returns_int() *, Foo, *) for(;;){} - // expected-error@+2{{indirection requires pointer operand ('int' invalid)}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{indirection requires pointer operand ('int' invalid)}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(* returns_int() , *) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(*) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(*Foo, *Foo) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(*, 5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(5, *) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'tile' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop tile(5, *, 3, *) for(;;){} } void Gang() { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang( for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang() for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(5, *) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(*) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(5, num:*) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(num:5, *) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(num:5, num:*) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(num:*) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(dim:5) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(dim:5, dim:*) for(;;){} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(dim:*) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:*) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:*, static:5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:*, 5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:45, 5) for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:45, for(;;){} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:45 for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:*, for(;;){} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:* for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(45, for(;;){} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(45 for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(num:45, for(;;){} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(num:45 for(;;){} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(dim:45, for(;;){} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(dim:45 for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(static:*, dim:returns_int(), 5) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'gang' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop gang(num: 32, static:*, dim:returns_int(), 5) for(;;){} } - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+5{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+4{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'nohost' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine worker, vector, seq, nohost void bar(); - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+5{{OpenACC clause 'worker' not yet implemented, clause ignored}} + // expected-warning@+4{{OpenACC clause 'vector' not yet implemented, clause ignored}} + // expected-warning@+3{{OpenACC clause 'seq' not yet implemented, clause ignored}} + // expected-warning@+2{{OpenACC clause 'nohost' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(bar) worker, vector, seq, nohost // Bind Clause Parsing. - // expected-error@+2{{expected '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected '('}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine bind void BCP1(); - // expected-error@+2{{expected identifier or string literal}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected identifier or string literal}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(BCP1) bind() - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine bind("ReductionClauseParsing") void BCP2(); - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(BCP1) bind(BCP2) - // expected-error@+2{{use of undeclared identifier 'unknown_thing'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'unknown_thing'}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(BCP1) bind(unknown_thing) diff --git a/clang/test/ParserOpenACC/parse-clauses.cpp b/clang/test/ParserOpenACC/parse-clauses.cpp index 322080c3c35bc..e524f73d8fdba 100644 --- a/clang/test/ParserOpenACC/parse-clauses.cpp +++ b/clang/test/ParserOpenACC/parse-clauses.cpp @@ -2,27 +2,33 @@ template void templ() { - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(I) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'collapse' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop collapse(T::value) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length(T::value) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'vector_length' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel vector_length(I) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(T::value) for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'async' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel async(I) for(;;){} } @@ -51,39 +57,51 @@ void function(); } - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::NSFunc) - // expected-error@+3{{'RecordTy' does not refer to a value}} + // expected-error@+4{{'RecordTy' does not refer to a value}} // expected-note@#RecTy{{declared here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::RecordTy) - // expected-error@+3{{'Value' is a private member of 'NS::RecordTy'}} + // expected-error@+4{{'Value' is a private member of 'NS::RecordTy'}} // expected-note@#VAL{{implicitly declared private here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::RecordTy::Value) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::RecordTy::ValuePub) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::TemplTy) - // expected-error@+2{{no member named 'unknown' in namespace 'NS'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{no member named 'unknown' in namespace 'NS'}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::unknown) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::function) - // expected-error@+3{{'priv_mem_function' is a private member of 'NS::RecordTy'}} + // expected-error@+4{{'priv_mem_function' is a private member of 'NS::RecordTy'}} // expected-note@#PrivMemFun{{implicitly declared private here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::RecordTy::priv_mem_function) - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(NS::RecordTy::mem_function) - // expected-error@+2{{string literal with user-defined suffix cannot be used here}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{string literal with user-defined suffix cannot be used here}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind("unknown udl"_UDL) - // expected-warning@+2{{encoding prefix 'u' on an unevaluated string literal has no effect}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{encoding prefix 'u' on an unevaluated string literal has no effect}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(u"16 bits") - // expected-warning@+2{{encoding prefix 'U' on an unevaluated string literal has no effect}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+3{{encoding prefix 'U' on an unevaluated string literal has no effect}} + // expected-warning@+2{{OpenACC clause 'bind' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(use) bind(U"32 bits") diff --git a/clang/test/ParserOpenACC/parse-constructs.c b/clang/test/ParserOpenACC/parse-constructs.c index 0bb33269bbe98..213b298df08a8 100644 --- a/clang/test/ParserOpenACC/parse-constructs.c +++ b/clang/test/ParserOpenACC/parse-constructs.c @@ -2,194 +2,201 @@ void func() { - // expected-error@+2{{expected OpenACC directive}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+1{{expected OpenACC directive}} #pragma acc for(;;){} - // expected-error@+3{{expected OpenACC directive}} - // expected-error@+2{{invalid OpenACC clause 'whatever'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+2{{expected OpenACC directive}} + // expected-error@+1{{invalid OpenACC clause 'whatever'}} #pragma acc(whatever) routine - // expected-error@+3{{expected OpenACC directive}} - // expected-error@+2{{invalid OpenACC clause 'routine'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+2{{expected OpenACC directive}} + // expected-error@+1{{invalid OpenACC clause 'routine'}} #pragma acc) routine - // expected-error@+2{{invalid OpenACC directive 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+1{{invalid OpenACC directive 'invalid'}} #pragma acc invalid for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel clause list for(;;){} // expected-error@+3{{expected clause-list or newline in OpenACC directive}} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel() clause list for(;;){} // expected-error@+4{{expected clause-list or newline in OpenACC directive}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel( clause list + for(;;){} + // expected-error@+3{{expected clause-list or newline in OpenACC directive}} + // expected-error@+2{{invalid OpenACC clause 'clause'}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} +#pragma acc serial() clause list + for(;;){} + // expected-error@+4{{expected clause-list or newline in OpenACC directive}} + // expected-error@+3{{expected ')'}} + // expected-note@+2{{to match this '('}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} +#pragma acc serial( clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} #pragma acc serial clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'kernels' not yet implemented, pragma ignored}} #pragma acc kernels clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'data' not yet implemented, pragma ignored}} #pragma acc data clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'enter data' not yet implemented, pragma ignored}} #pragma acc enter data clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'exit data' not yet implemented, pragma ignored}} #pragma acc exit data clause list for(;;){} - // expected-error@+2{{invalid OpenACC directive 'enter invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+1{{invalid OpenACC directive 'enter invalid'}} #pragma acc enter invalid for(;;){} - // expected-error@+2{{invalid OpenACC directive 'exit invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+1{{invalid OpenACC directive 'exit invalid'}} #pragma acc exit invalid for(;;){} - // expected-error@+2{{invalid OpenACC directive 'enter'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+1{{invalid OpenACC directive 'enter'}} #pragma acc enter for(;;){} - // expected-error@+2{{expected identifier}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+1{{expected identifier}} #pragma acc exit } for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'host_data' not yet implemented, pragma ignored}} #pragma acc host_data clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'loop' not yet implemented, pragma ignored}} #pragma acc loop clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'invalid'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel invalid clause list + for(;;){} + // expected-error@+2{{invalid OpenACC clause 'invalid'}} + // expected-warning@+1{{OpenACC construct 'serial' not yet implemented, pragma ignored}} +#pragma acc serial invalid clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'parallel loop' not yet implemented, pragma ignored}} #pragma acc parallel loop clause list for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'parallel loop' not yet implemented, pragma ignored}} #pragma acc parallel loop for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop clause list for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'serial loop' not yet implemented, pragma ignored}} #pragma acc serial loop for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'kernels loop' not yet implemented, pragma ignored}} #pragma acc kernels loop clause list for(;;){} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'kernels loop' not yet implemented, pragma ignored}} #pragma acc kernels loop for(;;){} int i = 0, j = 0, k = 0; - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic i = j; // expected-error@+2{{invalid OpenACC clause 'garbage'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic garbage i = j; // expected-error@+2{{invalid OpenACC clause 'garbage'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic garbage clause list i = j; - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic read i = j; // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic write clause list i = i + j; // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic update clause list i++; // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'atomic' not yet implemented, pragma ignored}} #pragma acc atomic capture clause list i = j++; // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'declare' not yet implemented, pragma ignored}} #pragma acc declare clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'init' not yet implemented, pragma ignored}} #pragma acc init clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'shutdown' not yet implemented, pragma ignored}} #pragma acc shutdown clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'set' not yet implemented, pragma ignored}} #pragma acc set clause list for(;;){} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'update' not yet implemented, pragma ignored}} #pragma acc update clause list for(;;){} } -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine void routine_func(); // expected-error@+2{{invalid OpenACC clause 'clause'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine clause list void routine_func(); // expected-error@+2{{use of undeclared identifier 'func_name'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (func_name) // expected-error@+3{{use of undeclared identifier 'func_name'}} // expected-error@+2{{invalid OpenACC clause 'clause'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (func_name) clause list -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (routine_func) // expected-error@+2{{invalid OpenACC clause 'clause'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (routine_func) clause list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (routine_func()) // expected-error@+2{{expected identifier}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine() // expected-error@+2{{expected identifier}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(int) diff --git a/clang/test/ParserOpenACC/parse-constructs.cpp b/clang/test/ParserOpenACC/parse-constructs.cpp index abeddd357619e..42fd09d6977dd 100644 --- a/clang/test/ParserOpenACC/parse-constructs.cpp +++ b/clang/test/ParserOpenACC/parse-constructs.cpp @@ -14,50 +14,50 @@ namespace NS { } // expected-error@+2{{use of undeclared identifier 'foo'; did you mean 'NS::foo'?}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(foo) -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(NS::foo) // expected-error@+2{{use of undeclared identifier 'templ'; did you mean 'NS::templ'?}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(templ) -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(NS::templ) // expected-error@+2{{use of undeclared identifier 'templ'; did you mean 'NS::templ'?}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(templ) -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(NS::templ) // expected-error@+2{{use of undeclared identifier 'T'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(templ) // expected-error@+2{{use of undeclared identifier 'T'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(NS::templ) // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (NS::foo()) // expected-error@+2 {{expected unqualified-id}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine() // expected-error@+2 {{expected unqualified-id}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine(int) // expected-error@+3{{'C' does not refer to a value}} // expected-note@#CDef{{declared here}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (NS::C) // expected-error@+3{{'private_mem_func' is a private member of 'NS::C'}} // expected-note@#PrivateMemFunc{{implicitly declared private here}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (NS::C::private_mem_func) -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-warning@+1{{OpenACC construct 'routine' not yet implemented, pragma ignored}} #pragma acc routine (NS::C::public_mem_func) diff --git a/clang/test/ParserOpenACC/parse-wait-clause.c b/clang/test/ParserOpenACC/parse-wait-clause.c index 7639e6242ea67..a303790535046 100644 --- a/clang/test/ParserOpenACC/parse-wait-clause.c +++ b/clang/test/ParserOpenACC/parse-wait-clause.c @@ -3,155 +3,227 @@ void func() { int i, j; - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait + {} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait ( + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait () + {} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait () clause-list + {} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: + {} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum:) + {} - // expected-error@+3{{expected expression}} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum:) clause-list + {} - // expected-error@+4{{expected ':'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected ':'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: i + j + {} - // expected-error@+2{{expected ':'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected ':'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: i + j) + {} - // expected-error@+3{{expected ':'}} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ':'}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: i + j) clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (queues: + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (queues:) + {} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (queues:) clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: i + j:queues: + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: i + j:queues:) + {} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (devnum: i + j:queues:) clause-list + {} - // expected-error@+4{{use of undeclared identifier 'devnum'}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{use of undeclared identifier 'devnum'}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (queues:devnum: i + j + {} - // expected-error@+2{{use of undeclared identifier 'devnum'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{use of undeclared identifier 'devnum'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (queues:devnum: i + j) + {} - // expected-error@+3{{use of undeclared identifier 'devnum'}} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{use of undeclared identifier 'devnum'}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait (queues:devnum: i + j) clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(i, j, 1+1, 3.3 + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(i, j, 1+1, 3.3) - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(i, j, 1+1, 3.3) clause-list + {} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(, + {} - // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{expected expression}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(,) + {} - // expected-error@+3{{expected expression}} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected expression}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(,) clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(queues:i, j, 1+1, 3.3 + {} - // expected-error@+4{{expected expression}} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+5{{expected expression}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(queues:i, j, 1+1, 3.3, + {} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(queues:i, j, 1+1, 3.3) + {} - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(queues:i, j, 1+1, 3.3) clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(devnum:3:i, j, 1+1, 3.3 - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(devnum:3:i, j, 1+1, 3.3) - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(devnum:3:i, j, 1+1, 3.3) clause-list + {} - // expected-error@+3{{expected ')'}} - // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-error@+4{{expected ')'}} + // expected-note@+3{{to match this '('}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(devnum:3:queues:i, j, 1+1, 3.3 - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(devnum:3:queues:i, j, 1+1, 3.3) - // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + {} + // expected-error@+3{{invalid OpenACC clause 'clause'}} + // expected-warning@+2{{OpenACC clause 'wait' not yet implemented, clause ignored}} + // expected-warning@+1{{OpenACC construct 'parallel' not yet implemented, pragma ignored}} #pragma acc parallel wait(devnum:3:queues:i, j, 1+1, 3.3) clause-list + {} } diff --git a/clang/test/ParserOpenACC/parse-wait-construct.c b/clang/test/ParserOpenACC/parse-wait-construct.c index 8f99f4aa8f67b..30a9fc8c12a47 100644 --- a/clang/test/ParserOpenACC/parse-wait-construct.c +++ b/clang/test/ParserOpenACC/parse-wait-construct.c @@ -3,155 +3,155 @@ void func() { int i, j; - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait ( - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait () // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait () clause-list // expected-error@+4{{expected expression}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum:) // expected-error@+3{{expected expression}} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum:) clause-list // expected-error@+4{{expected ':'}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: i + j // expected-error@+2{{expected ':'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: i + j) // expected-error@+3{{expected ':'}} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: i + j) clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (queues: - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (queues:) // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (queues:) clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: i + j:queues: - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: i + j:queues:) // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (devnum: i + j:queues:) clause-list // expected-error@+4{{use of undeclared identifier 'devnum'}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (queues:devnum: i + j // expected-error@+2{{use of undeclared identifier 'devnum'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (queues:devnum: i + j) // expected-error@+3{{use of undeclared identifier 'devnum'}} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait (queues:devnum: i + j) clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(i, j, 1+1, 3.3 - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(i, j, 1+1, 3.3) // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(i, j, 1+1, 3.3) clause-list // expected-error@+4{{expected expression}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(, // expected-error@+2{{expected expression}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(,) // expected-error@+3{{expected expression}} // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(,) clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(queues:i, j, 1+1, 3.3 // expected-error@+4{{expected expression}} // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(queues:i, j, 1+1, 3.3, - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(queues:i, j, 1+1, 3.3) // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(queues:i, j, 1+1, 3.3) clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(devnum:3:i, j, 1+1, 3.3 - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(devnum:3:i, j, 1+1, 3.3) // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(devnum:3:i, j, 1+1, 3.3) clause-list // expected-error@+3{{expected ')'}} // expected-note@+2{{to match this '('}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3 - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3) // expected-error@+2{{invalid OpenACC clause 'clause'}} - // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} + // expected-warning@+1{{OpenACC construct 'wait' not yet implemented, pragma ignored}} #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3) clause-list } diff --git a/clang/test/ParserOpenACC/unimplemented.c b/clang/test/ParserOpenACC/unimplemented.c index be8e62b581178..7426e028c0252 100644 --- a/clang/test/ParserOpenACC/unimplemented.c +++ b/clang/test/ParserOpenACC/unimplemented.c @@ -1,26 +1,23 @@ // RUN: %clang_cc1 %s -verify -fopenacc // Parser::ParseExternalDeclaration -// expected-error@+3{{invalid OpenACC directive 'havent'}} -// expected-error@+2{{invalid OpenACC clause 'implemented'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-error@+2{{invalid OpenACC directive 'havent'}} +// expected-error@+1{{invalid OpenACC clause 'implemented'}} #pragma acc havent implemented int foo; struct S { // Parser::ParseStructUnionBody -// expected-error@+3{{invalid OpenACC directive 'havent'}} -// expected-error@+2{{invalid OpenACC clause 'implemented'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-error@+2{{invalid OpenACC directive 'havent'}} +// expected-error@+1{{invalid OpenACC clause 'implemented'}} #pragma acc havent implemented int foo; }; void func() { // Parser::ParseStmtOrDeclarationAfterAttributes -// expected-error@+3{{invalid OpenACC directive 'havent'}} -// expected-error@+2{{invalid OpenACC clause 'implemented'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-error@+2{{invalid OpenACC directive 'havent'}} +// expected-error@+1{{invalid OpenACC clause 'implemented'}} #pragma acc havent implemented while(0) {} } diff --git a/clang/test/ParserOpenACC/unimplemented.cpp b/clang/test/ParserOpenACC/unimplemented.cpp index 6ffc84a3bc09d..0acd69a7ae087 100644 --- a/clang/test/ParserOpenACC/unimplemented.cpp +++ b/clang/test/ParserOpenACC/unimplemented.cpp @@ -1,26 +1,23 @@ // RUN: %clang_cc1 %s -verify -fopenacc // Parser::ParseExternalDeclaration -// expected-error@+3{{invalid OpenACC directive 'havent'}} -// expected-error@+2{{invalid OpenACC clause 'implemented'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-error@+2{{invalid OpenACC directive 'havent'}} +// expected-error@+1{{invalid OpenACC clause 'implemented'}} #pragma acc havent implemented int foo; struct S { // Parser::ParseCXXClassMemberDeclarationWithPragmas -// expected-error@+3{{invalid OpenACC directive 'havent'}} -// expected-error@+2{{invalid OpenACC clause 'implemented'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-error@+2{{invalid OpenACC directive 'havent'}} +// expected-error@+1{{invalid OpenACC clause 'implemented'}} #pragma acc havent implemented int foo; }; void func() { // Parser::ParseStmtOrDeclarationAfterAttributes -// expected-error@+3{{invalid OpenACC directive 'havent'}} -// expected-error@+2{{invalid OpenACC clause 'implemented'}} -// expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}} +// expected-error@+2{{invalid OpenACC directive 'havent'}} +// expected-error@+1{{invalid OpenACC clause 'implemented'}} #pragma acc havent implemented while(false) {} }