diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-08-31 20:42:55 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-08-31 20:42:55 +0200 |
commit | d12a0b5aabfc329077c4222755c5e6f78e7fd07e (patch) | |
tree | ec28d0149fff8389b1640c653288cfcd0a1524d7 /gcc/fortran/trans-openmp.c | |
parent | f25f40be277fe6687e86b6395a55781211811bef (diff) | |
download | gcc-d12a0b5aabfc329077c4222755c5e6f78e7fd07e.zip gcc-d12a0b5aabfc329077c4222755c5e6f78e7fd07e.tar.gz gcc-d12a0b5aabfc329077c4222755c5e6f78e7fd07e.tar.bz2 |
re PR tree-optimization/77352 (ICE: verify_ssa failed)
PR fortran/77352
* trans-openmp.c (gfc_trans_omp_parallel_workshare): Always add a
BIND_EXPR with BLOCK around what gfc_trans_omp_workshare returns.
* gfortran.dg/gomp/pr77352.f90: New test.
From-SVN: r239904
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
-rw-r--r-- | gcc/fortran/trans-openmp.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index 3f5db96..c0d6761 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -4001,10 +4001,7 @@ gfc_trans_omp_parallel_workshare (gfc_code *code) code->loc); pushlevel (); stmt = gfc_trans_omp_workshare (code, &workshare_clauses); - if (TREE_CODE (stmt) != BIND_EXPR) - stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); - else - poplevel (0, 0); + stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); stmt = build2_loc (input_location, OMP_PARALLEL, void_type_node, stmt, omp_clauses); OMP_PARALLEL_COMBINED (stmt) = 1; |