diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2018-10-29 15:01:58 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2018-10-29 15:01:58 +0000 |
commit | 6ab5bb115a3491e799dfe00da39136f02247c251 (patch) | |
tree | 3d8dd63d655cbda273934e4b09281b24a104c384 /clang/test/OpenMP/taskloop_firstprivate_messages.cpp | |
parent | d7bca00ab0094918b9fd8674f4ac1d3cf6741b4e (diff) | |
download | bcm5719-llvm-6ab5bb115a3491e799dfe00da39136f02247c251.tar.gz bcm5719-llvm-6ab5bb115a3491e799dfe00da39136f02247c251.zip |
[OPENMP] Do not capture private loop counters.
If the loop counter is not declared in the context of the loop and it is
private, such loop counters should not be captured in the outlined
regions.
llvm-svn: 345505
Diffstat (limited to 'clang/test/OpenMP/taskloop_firstprivate_messages.cpp')
-rw-r--r-- | clang/test/OpenMP/taskloop_firstprivate_messages.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/test/OpenMP/taskloop_firstprivate_messages.cpp b/clang/test/OpenMP/taskloop_firstprivate_messages.cpp index 7e1b818800d..a34d9bcd82b 100644 --- a/clang/test/OpenMP/taskloop_firstprivate_messages.cpp +++ b/clang/test/OpenMP/taskloop_firstprivate_messages.cpp @@ -297,9 +297,12 @@ int main(int argc, char **argv) { #pragma omp taskloop firstprivate(i) // expected-note {{defined as firstprivate}} for (i = 0; i < argc; ++i) // expected-error {{loop iteration variable in the associated loop of 'omp taskloop' directive may not be firstprivate, predetermined as private}} foo(); -#pragma omp parallel reduction(+ : i) // expected-note 2 {{defined as reduction}} +#pragma omp parallel reduction(+ : i) // expected-note {{defined as reduction}} #pragma omp taskloop firstprivate(i) //expected-error {{argument of a reduction clause of a parallel construct must not appear in a firstprivate clause on a task construct}} - for (i = 0; i < argc; ++i) // expected-error {{reduction variables may not be accessed in an explicit task}} + for (i = 0; i < argc; ++i) + foo(); +#pragma omp taskloop firstprivate(i) //expected-note {{defined as firstprivate}} + for (i = 0; i < argc; ++i) // expected-error {{loop iteration variable in the associated loop of 'omp taskloop' directive may not be firstprivate, predetermined as private}} foo(); #pragma omp parallel #pragma omp taskloop firstprivate(B::x) // expected-error {{threadprivate or thread local variable cannot be firstprivate}} |