62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
// { dg-do compile }
|
|
|
|
extern int test(int);
|
|
void foo()
|
|
{
|
|
int i;
|
|
|
|
for (i = 0; i < 10; ++i)
|
|
{
|
|
#pragma omp sections
|
|
{
|
|
continue; // { dg-error "invalid exit" }
|
|
}
|
|
}
|
|
|
|
#pragma omp sections
|
|
{
|
|
#pragma omp section
|
|
{ bad1: ; } // { dg-error "jump to label" }
|
|
#pragma omp section
|
|
goto bad1; // { dg-error "from here|enters OpenMP" }
|
|
}
|
|
|
|
#pragma omp sections
|
|
{
|
|
goto bad2; // { dg-error "from here" }
|
|
}
|
|
bad2:; // { dg-error "jump|exits OpenMP" }
|
|
|
|
goto bad3; // { dg-error "from here" }
|
|
#pragma omp sections
|
|
{
|
|
bad3: ; // { dg-error "jump|enters OpenMP" }
|
|
}
|
|
|
|
#pragma omp sections
|
|
{
|
|
goto ok1;
|
|
ok1:;
|
|
|
|
#pragma omp section
|
|
for (i = 0; i < 10; ++i)
|
|
if (test(i))
|
|
break;
|
|
else
|
|
continue;
|
|
|
|
#pragma omp section
|
|
switch (i)
|
|
{
|
|
case 0:
|
|
break;
|
|
default:
|
|
test(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 21 }
|
|
// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 26 }
|
|
// { dg-message "error: invalid entry to OpenMP structured block" "" { target *-*-* } 30 }
|