diff options
author | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2016-05-09 14:59:13 +0000 |
---|---|---|
committer | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2016-05-09 14:59:13 +0000 |
commit | dff5f54ee890a7a56c2221516ed67bde536c170f (patch) | |
tree | 73418f4cfcc84675abea93e52084eae8a48248f4 /test/OpenMP/declare_target_messages.cpp | |
parent | 448976e08c756c893441925c3263175127d67829 (diff) |
[OpenMP] Parse+Sema for '#pragma omp declare target' syntax version 4.5
Support OpenMP version 4.5 syntax for #pragma omp declare target.
Syntax:
#pragma omp declare target (extended-list) new-line
or
#pragma omp declare target clause[ [,] clause ... ] new-line
Where clause is one of the following:
to(extended-list)
link(list)
Differential Revision: http://reviews.llvm.org/D20011
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268925 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/OpenMP/declare_target_messages.cpp')
-rw-r--r-- | test/OpenMP/declare_target_messages.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/test/OpenMP/declare_target_messages.cpp b/test/OpenMP/declare_target_messages.cpp index 50f0ed98fc..b858d53c1e 100644 --- a/test/OpenMP/declare_target_messages.cpp +++ b/test/OpenMP/declare_target_messages.cpp @@ -4,9 +4,15 @@ int a, b; // expected-warning {{declaration is not declared in any declare target region}} __thread int t; // expected-note {{defined as threadprivate or thread local}} -#pragma omp declare target private(a) // expected-warning {{extra tokens at the end of '#pragma omp declare target' are ignored}} + +#pragma omp declare target . // expected-error {{expected '(' after 'declare target'}} + +#pragma omp declare target void f(); #pragma omp end declare target shared(a) // expected-warning {{extra tokens at the end of '#pragma omp end declare target' are ignored}} + +#pragma omp declare target map(a) // expected-error {{unexpected 'map' clause, only 'to' or 'link' clauses expected}} + void c(); // expected-warning {{declaration is not declared in any declare target region}} extern int b; @@ -86,4 +92,10 @@ namespace { } // expected-error {{expected '#pragma omp end declare target'}} #pragma omp end declare target // expected-error {{unexpected OpenMP directive '#pragma omp end declare target'}} +#pragma omp declare target link(S) // expected-error {{'S' used in declare target directive is not a variable or a function name}} + +#pragma omp declare target (x, x) // expected-error {{'x' appears multiple times in clauses on the same declare target directive}} +#pragma omp declare target to(x) to(x) // expected-error {{'x' appears multiple times in clauses on the same declare target directive}} +#pragma omp declare target link(x) // expected-error {{'x' must not appear in both clauses 'to' and 'link'}} + #pragma omp declare target // expected-error {{expected '#pragma omp end declare target'}} expected-note {{to match this '#pragma omp declare target'}} |