Fix warning with -Wsign-compare -Wsystem-headers
[official-gcc.git] / gcc / testsuite / gcc.dg / gomp / pr32468-1.c
blob1eb264e53de4695898d4c3d3971c57585be7f7c7
1 /* PR libgomp/32468 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fopenmp -fdump-tree-ompexp" } */
5 extern int printf (const char *, ...);
6 extern int omp_get_thread_num (void), omp_get_num_threads (void);
7 extern int bar (void);
8 extern int baz (const char *, ...);
10 void
11 f1 (void)
13 #pragma omp parallel
15 baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
16 #pragma omp sections
18 #pragma omp section
19 printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
20 #pragma omp section
21 printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
26 void
27 f2 (void)
29 #pragma omp parallel
31 #pragma omp sections
33 #pragma omp section
34 printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
35 #pragma omp section
36 printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
38 baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
42 void
43 f3 (void)
45 #pragma omp parallel
47 int bb = bar ();
48 #pragma omp sections
50 #pragma omp section
51 printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
52 #pragma omp section
53 printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
58 void
59 f4 (void)
61 int i;
62 #pragma omp parallel
64 baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
65 #pragma omp for schedule (dynamic, 15)
66 for (i = 0; i < 10000; i++)
67 printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
71 void
72 f5 (void)
74 int i;
75 #pragma omp parallel
77 #pragma omp for schedule (dynamic, 15)
78 for (i = 0; i < 10000; i++)
79 printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
80 baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
84 void
85 f6 (void)
87 int i;
88 #pragma omp parallel
90 int bb = bar ();
91 #pragma omp for schedule (runtime)
92 for (i = 0; i < 10000; i++)
93 printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
97 /* There should not be a GOMP_parallel_{loop,sections}* call. */
98 /* { dg-final { scan-tree-dump-times "GOMP_parallel_loop" 0 "ompexp"} } */
99 /* { dg-final { scan-tree-dump-times "GOMP_parallel_sections" 0 "ompexp"} } */