PR c/49859
[official-gcc.git] / gcc / testsuite / g++.dg / gomp / teams-1.C
blobd0460c3c22c3ffa91b7af0a3c6f6650dde9e4116
1 // { dg-do compile }
3 void
4 foo (int x)
6   bad1:                         // { dg-error "jump to label" }
7   #pragma omp target teams
8     goto bad1;                  // { dg-message "from here|exits OpenMP" }
10   goto bad2;                    // { dg-message "from here" }
11   #pragma omp target teams
12     {
13       bad2: ;                   // { dg-error "jump to label" }
14                                 // { dg-message "enters OpenMP" "" { target *-*-* } 13 }
15     }
17   #pragma omp target teams
18     {
19       int i;
20       goto ok1;
21       for (i = 0; i < 10; ++i)
22         { ok1: break; }
23     }
25   switch (x)
26   {
27   #pragma omp target teams
28     { case 0:; }                // { dg-error "jump" }
29                                 // { dg-warning "statement will never be executed" "" { target *-*-* } 28 }
30                                 // { dg-message "enters" "" { target *-*-* } 28 }
31   }
34 void
35 bar (int x)
37   bad1:                         // { dg-error "jump to label" }
38   #pragma omp target
39   #pragma omp teams
40     goto bad1;                  // { dg-message "from here|exits OpenMP" }
42   goto bad2;                    // { dg-message "from here" }
43   #pragma omp target
44   #pragma omp teams
45     {
46       bad2: ;                   // { dg-error "jump to label" }
47                                 // { dg-message "enters OpenMP" "" { target *-*-* } 46 }
48     }
50   #pragma omp target
51   #pragma omp teams
52     {
53       int i;
54       goto ok1;
55       for (i = 0; i < 10; ++i)
56         { ok1: break; }
57     }
59   switch (x)
60   {
61   #pragma omp target            // { dg-warning "statement will never be executed" }
62   #pragma omp teams
63     { case 0:; }                // { dg-error "jump" }
64                                 // { dg-message "enters" "" { target *-*-* } 63 }
65   }
68 // { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 8 }
69 // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 10 }
70 // { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 40 }
71 // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 42 }