aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.c/pr81687-2.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-08-10 02:33:20 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-08-10 02:33:20 +0200
commit50aa16c38821e9cba4fabf6ca4b601b34b84a9c8 (patch)
tree63f1d98ac39aa578be9ea5c5e5147588e4859ed5 /libgomp/testsuite/libgomp.c/pr81687-2.c
parent47ee1b7c10f2aa90645b0d2a94926fa2a674450c (diff)
downloadgcc-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 'libgomp/testsuite/libgomp.c/pr81687-2.c')
-rw-r--r--libgomp/testsuite/libgomp.c/pr81687-2.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c/pr81687-2.c b/libgomp/testsuite/libgomp.c/pr81687-2.c
new file mode 100644
index 0000000..e819f76
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/pr81687-2.c
@@ -0,0 +1,27 @@
+/* PR c/81687 */
+/* { dg-do link } */
+/* { dg-additional-options "-O2" } */
+
+int
+main ()
+{
+ __label__ lab4, lab5, lab6;
+ volatile int l = 0;
+ int m = l;
+ void foo (int x) { if (x == 1) goto lab4; }
+ void bar (int x) { if (x == 2) goto lab5; }
+ void baz (int x) { if (x == 3) goto lab6; }
+ #pragma omp parallel
+ {
+ foo (m + 1);
+ lab4:;
+ }
+ #pragma omp task
+ {
+ bar (m + 2);
+ lab5:;
+ }
+ baz (m + 3);
+ lab6:;
+ return 0;
+}