diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-08-10 02:33:20 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-08-10 02:33:20 +0200 |
commit | 50aa16c38821e9cba4fabf6ca4b601b34b84a9c8 (patch) | |
tree | 63f1d98ac39aa578be9ea5c5e5147588e4859ed5 /gcc/omp-low.c | |
parent | 47ee1b7c10f2aa90645b0d2a94926fa2a674450c (diff) | |
download | gcc-50aa16c38821e9cba4fabf6ca4b601b34b84a9c8.zip gcc-50aa16c38821e9cba4fabf6ca4b601b34b84a9c8.tar.gz gcc-50aa16c38821e9cba4fabf6ca4b601b34b84a9c8.tar.bz2 |
re PR c/81687 (Compiler drops label in OpenMP region)
PR c/81687
* omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
LABEL_DECLs.
* tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
or DECL_NONLOCAL labels.
(move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
or DECL_NONLOCAL labels here.
* testsuite/libgomp.c/pr81687-1.c: New test.
* testsuite/libgomp.c/pr81687-2.c: New test.
From-SVN: r251019
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r-- | gcc/omp-low.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 3df6056..dffdb77 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -798,6 +798,8 @@ omp_copy_decl (tree var, copy_body_data *cb) if (TREE_CODE (var) == LABEL_DECL) { + if (FORCED_LABEL (var) || DECL_NONLOCAL (var)) + return var; new_var = create_artificial_label (DECL_SOURCE_LOCATION (var)); DECL_CONTEXT (new_var) = current_function_decl; insert_decl_map (&ctx->cb, var, new_var); |