]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/gomp/attrs-19.c
testsuite: Refer more consistently to C23 not C2X
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / gomp / attrs-19.c
CommitLineData
8067caa8 1/* { dg-do compile } */
54bac0ce 2/* { dg-options "-fopenmp -std=c23" } */
8067caa8
JJ
3
4void foo1 ();
5
6void
7foo ()
8{
9 [[omp::decl (declare variant (foo1) match (construct={parallel,for}))]]
10 extern void foo2 ();
11 [[omp::sequence (directive (parallel), directive (for))]]
12 for (int i = 0; i < 5; i++)
13 foo2 ();
14 [[omp::decl (declare simd simdlen(4) linear(l) aligned(p:4) uniform(p) inbranch),
15 omp::directive (declare simd simdlen(8) notinbranch)]]
16 extern int foo3 (int l, int *p);
17 [[omp::directive (declare simd simdlen(4) linear(l) aligned(p:4) uniform(p) inbranch),
18 omp::decl (declare simd simdlen(8) notinbranch)]]
19 extern int foo4 (int l, int *p);
20 [[omp::decl (declare simd simdlen(4) linear(l) aligned(p:4) uniform(p) inbranch),
21 omp::decl (declare simd simdlen(8) notinbranch)]]
22 extern int foo5 (int l, int *p);
23}
24
25void bar1 ();
26
27void
28bar ()
29{
30 [[omp :: decl (declare variant (bar1), match (construct={parallel,for}))]]
31 extern void bar2 ();
32 [[omp::sequence (directive (parallel), directive (for))]]
33 for (int i = 0; i < 5; i++)
34 bar2 ();
35 [[omp::decl (declare simd, simdlen(4), linear(l), aligned(p:4),uniform(p),inbranch),
36 omp::directive (declare simd simdlen(8) notinbranch)]]
37 extern int bar3 (int l, int *p);
38 [[omp::directive (declare simd,simdlen(4),linear(l),aligned(p:4),uniform(p),inbranch),
39 omp::decl (declare simd, simdlen(8), notinbranch)]]
40 extern int bar4 (int l, int *p);
41 [[omp::decl (declare simd, simdlen(4), linear(l), aligned(p:4), uniform(p), inbranch),
42 omp::decl (declare simd, simdlen(8), notinbranch)]]
43 extern int bar5 (int l, int *p);
44}
45
46struct S { int s; };
47
48[[omp::decl (threadprivate)]] int t1, t2;
49int x1, t3 [[omp::decl (threadprivate)]], x2, t4 [[omp::decl (threadprivate)]] [5];
50[[maybe_unused, omp::decl (threadprivate)]] int t5, t6;
51[[omp::decl (threadprivate)]] struct S t7, t8;
52[[omp::decl (declare target enter device_type (host))]] int d1, d2, d3 (int, int), d4;
53int x3, d5 [[omp::decl (declare target, enter, device_type (any))]], d6 [[omp::decl (declare target link)]], x4;
54int d7 [[omp::decl (declare target)]];
55[[omp::decl (declare target), omp::decl (declare target)]] int d8, d9;
56
57void
58baz ()
59{
60 [[omp::decl (threadprivate)]] static int t1, t2;
61 static int x1, t3 [[omp::decl (threadprivate)]], x2, t4 [[omp::decl (threadprivate)]] [5];
62 [[maybe_unused, omp::decl (threadprivate)]] extern int t5, t6;
63 [[omp::decl (declare target enter)]] extern int d1, d2, d3 (int, int), d4;
64 static int x3, d5 [[omp::decl (declare target, enter, device_type (any))]], d6 [[omp::decl (declare target link)]], x4;
65 ++t1; ++t2;
66 ++t3; ++t4[2];
67 ++t5; ++t6;
68 ++d1;
69}