gcc/libgomp/testsuite/libgomp.c/pr81687-2.c
Jakub Jelinek 50aa16c388 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
2017-08-10 02:33:20 +02:00

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;
}