diff options
author | Jakub Jelinek <jakub@redhat.com> | 2021-02-10 10:34:58 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2021-02-10 10:42:35 +0100 |
commit | bd0e37f68a3aed944df4eb739a0734bb87153749 (patch) | |
tree | 48e335eed9475af51da6a5e81b8c2c989d9ab346 /gcc/tree-switch-conversion.c | |
parent | 9eb7669cc040882992dee3621ebacf4f0311e8a0 (diff) | |
download | gcc-bd0e37f68a3aed944df4eb739a0734bb87153749.zip gcc-bd0e37f68a3aed944df4eb739a0734bb87153749.tar.gz gcc-bd0e37f68a3aed944df4eb739a0734bb87153749.tar.bz2 |
openmp: Temporarily disable into_ssa when gimplifying OpenMP reduction clauses [PR99007]
gimplify_scan_omp_clauses was already calling gimplify_expr with false as
last argument to make sure it is not an SSA_NAME, but as the testcases show,
that is not enough, SSA_NAME temporaries created during that gimplification
can be reused too and we can't allow SSA_NAMEs to be used across OpenMP
region boundaries, as we can only firstprivatize decls.
Fixed by temporarily disabling into_ssa.
2021-02-10 Jakub Jelinek <jakub@redhat.com>
PR middle-end/99007
* gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
calls.
* g++.dg/gomp/pr99007.C: New test.
* gcc.dg/gomp/pr99007-1.c: New test.
* gcc.dg/gomp/pr99007-2.c: New test.
* gcc.dg/gomp/pr99007-3.c: New test.
Diffstat (limited to 'gcc/tree-switch-conversion.c')
0 files changed, 0 insertions, 0 deletions