50aa16c388
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
28 lines
443 B
C
28 lines
443 B
C
/* 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;
|
|
}
|