c++: prvalue of array type [PR111286]
[official-gcc.git] / gcc / testsuite / c-c++-common / gomp / imperfect-extension.c
bloba8a8f9ebe1dfec75eaa788f82dfa89de96b20709
1 /* { dg-do compile } */
3 /* Check that __extension__ introduces intervening code. */
5 extern void do_something (void);
7 void imperfect1 (int x, int y)
9 #pragma omp for collapse (2)
10 for (int i = 0; i < x; i++) /* { dg-error "not enough nested loops" } */
12 __extension__ ({
13 for (int j = 0; j < y; j++) /* { dg-error "loop not permitted in intervening code" } */
14 do_something ();
15 });
19 void perfect1 (int x, int y)
21 #pragma omp for ordered (2)
22 for (int i = 0; i < x; i++) /* { dg-error "not enough nested loops" } */
23 /* { dg-error "inner loops must be perfectly nested" "" { target *-*-*} .-1 } */
25 __extension__ ({
26 for (int j = 0; j < y; j++) /* { dg-error "loop not permitted in intervening code" } */
27 do_something ();
28 });
32 /* Check that we don't barf on __extension__ in the inner loop body. */
33 void imperfect2 (int x, int y)
35 #pragma omp for collapse (2)
36 for (int i = 0; i < x; i++)
37 for (int j = 0; j < y; j++)
39 __extension__ ({
40 do_something ();
41 });
45 void perfect2 (int x, int y)
47 #pragma omp for ordered (2)
48 for (int i = 0; i < x; i++)
49 for (int j = 0; j < y; j++)
51 __extension__ ({
52 do_something ();
53 });