c++: P2448 - Relaxing some constexpr restrictions [PR106649]
[official-gcc.git] / gcc / testsuite / g++.dg / gomp / pr79664.C
blobf4c30c0b3f49780439ea4dfc7630063acab3d12e
1 // PR c++/79664
2 // { dg-do compile }
3 // { dg-options "-std=c++14 -fopenmp -Winvalid-constexpr -pedantic-errors" }
5 constexpr int
6 f1 ()
8   int i = 0;
9 #pragma omp parallel for                        // { dg-error "is not a constant expression" }
10   for (i = 0; i < 10; ++i)
11     ;
12   return 0;
15 constexpr int
16 f2 ()
18   int i = 0;
19 #pragma omp parallel                            // { dg-error "is not a constant expression" }
20   i = 5;
21   return 0;
24 constexpr int
25 f3 ()
27   int i = 0;
28 #pragma omp task                                // { dg-error "is not a constant expression" }
29   i = 5;
30   return 0;
33 constexpr int
34 f4 ()
36   int i = 0;
37 #pragma omp for                                 // { dg-error "is not a constant expression" }
38   for (i = 0; i < 10; ++i)
39     ;
40   return 0;
43 constexpr int
44 f5 ()
46   int i = 0;
47 #pragma omp taskloop                            // { dg-error "is not a constant expression" }
48   for (i = 0; i < 10; ++i)
49     ;
50   return 0;
53 constexpr int
54 f6 ()
56   int i = 0;
57 #pragma omp target teams                        // { dg-error "is not a constant expression" }
58   i = 5;
59   return 0;
62 constexpr int
63 f7 ()
65   int i = 0;
66 #pragma omp target data map(tofrom:i)           // { dg-error "is not a constant expression" }
67   i = 5;
68   return 0;
71 constexpr int
72 f8 ()
74   int i = 0;
75 #pragma omp target                              // { dg-error "is not a constant expression" }
76   i = 5;
77   return 0;
80 constexpr int
81 f9 ()
83   int i = 0;
84 #pragma omp sections                            // { dg-error "is not a constant expression" }
85   {
86 #pragma omp section
87     i = 5;
88   }
89   return 0;
92 constexpr int
93 f10 ()
95   int i = 0;
96 #pragma omp ordered                             // { dg-error "is not a constant expression" }
97   i = 1;
98   return 0;
101 constexpr int
102 f11 ()
104   int i = 0;
105 #pragma omp critical                            // { dg-error "is not a constant expression" }
106   i = 1;
107   return 0;
110 constexpr int
111 f12 ()
113   int i = 0;
114 #pragma omp single                              // { dg-error "is not a constant expression" }
115   i = 1;
116   return 0;
119 constexpr int
120 f13 ()
122   int i = 0;
123 #pragma omp master                              // { dg-error "is not a constant expression" }
124   i = 1;
125   return 0;
128 constexpr int
129 f14 ()
131   int i = 0;
132 #pragma omp taskgroup                           // { dg-error "is not a constant expression" }
133   i = 1;
134   return 0;
137 constexpr int
138 f15 ()
140   int i = 0;
141 #pragma omp target update to(i)                 // { dg-error "is not a constant expression" }
142   i = 1;
143   return 0;
146 constexpr int
147 f16 ()
149   int i = 0;
150 #pragma omp target update to(i)                 // { dg-error "is not a constant expression" }
151   return 0;
154 constexpr int
155 f17 ()
157   int i = 0;
158 #pragma omp target enter data map(to:i)         // { dg-error "is not a constant expression" }
159   return 0;
162 constexpr int
163 f18 ()
165   int i = 0;
166 #pragma omp target exit data map(from:i)        // { dg-error "is not a constant expression" }
167   return 0;