aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-04-20 03:42:24 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-04-20 03:42:24 +0200
commit843110834c557d7a68c11c9313d426301ca65dc1 (patch)
treedc9ea5ac797c8fd972ac87c8f46f262df1197ae8 /gcc/gimplify.c
parent743af9719d3413ce7d8e9239d8e280f9b7082f9a (diff)
downloadgcc-843110834c557d7a68c11c9313d426301ca65dc1.zip
gcc-843110834c557d7a68c11c9313d426301ca65dc1.tar.gz
gcc-843110834c557d7a68c11c9313d426301ca65dc1.tar.bz2
re PR middle-end/70680 (OpenMP SIMD linear variable privatized too eagerly)
PR middle-end/70680 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for implicitly linear or lastprivate iterator on the outer context. * testsuite/libgomp.c/pr70680-1.c: New test. * testsuite/libgomp.c/pr70680-2.c: New test. From-SVN: r235232
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 99c9760..e223e59 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -8785,7 +8785,10 @@ gimplify_omp_for (tree *expr_p, gimple_seq *pre_p)
decl, false))
;
else if (outer->region_type != ORT_COMBINED_PARALLEL)
- outer = NULL;
+ {
+ omp_notice_variable (outer, decl, true);
+ outer = NULL;
+ }
if (outer)
{
n = splay_tree_lookup (outer->variables,
@@ -8868,7 +8871,10 @@ gimplify_omp_for (tree *expr_p, gimple_seq *pre_p)
decl, false))
;
else if (outer->region_type != ORT_COMBINED_PARALLEL)
- outer = NULL;
+ {
+ omp_notice_variable (outer, decl, true);
+ outer = NULL;
+ }
if (outer)
{
n = splay_tree_lookup (outer->variables,