-
Notifications
You must be signed in to change notification settings - Fork 10.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[OpenACC] Implement 'wait' clause parsing.
The 'wait' clause is parsed the same way as the 'wait' construct, so this jsut differs to that function.
- Loading branch information
1 parent
58e8c07
commit 0dd0cbd
Showing
3 changed files
with
173 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
// RUN: %clang_cc1 %s -verify -fopenacc | ||
|
||
void func() { | ||
int i, j; | ||
|
||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait ( | ||
|
||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait (devnum: | ||
|
||
// expected-error@+2{{expected expression}} | ||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait (devnum: i + j | ||
|
||
// expected-error@+2{{expected ':'}} | ||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait (queues: | ||
|
||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait (devnum: i + j:queues: | ||
|
||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#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}} | ||
#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}} | ||
#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}} | ||
#pragma acc parallel wait(i, j, 1+1, 3.3 | ||
|
||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait(, | ||
|
||
// expected-error@+2{{expected expression}} | ||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#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}} | ||
#pragma acc parallel wait(queues:i, j, 1+1, 3.3, | ||
|
||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait(devnum:3:i, j, 1+1, 3.3 | ||
// expected-warning@+1{{OpenACC directives 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}} | ||
#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}} | ||
#pragma acc parallel wait(devnum:3:queues:i, j, 1+1, 3.3 | ||
// expected-warning@+1{{OpenACC directives 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}} | ||
#pragma acc parallel wait(devnum:3:queues:i, j, 1+1, 3.3) clause-list | ||
} |