Add fix-it hint for missing return statement in assignment operators (PR c++/85523)
[official-gcc.git] / libgomp / testsuite / libgomp.hsa.c / switch-sbr-2.c
blob06990d1c2c065b61e572cd3bb9b6988fd05d9bab
1 /* { dg-additional-options "-fno-tree-switch-conversion" } */
3 #pragma omp declare target
4 int
5 foo (unsigned a)
7 switch (a)
9 case 1 ... 5:
10 return 1;
11 case 9 ... 11:
12 return a + 3;
13 case 12 ... 13:
14 return a + 3;
15 default:
16 return 44;
19 #pragma omp end declare target
21 #define s 100
23 void __attribute__((noinline, noclone))
24 verify(int *a)
26 if (a[0] != 44)
27 __builtin_abort ();
29 for (int i = 1; i <= 5; i++)
30 if (a[i] != 1)
31 __builtin_abort ();
33 for (int i = 6; i <= 8; i++)
34 if (a[i] != 44)
35 __builtin_abort ();
37 for (int i = 9; i <= 13; i++)
38 if (a[i] != i + 3)
39 __builtin_abort ();
41 for (int i = 14; i < s; i++)
42 if (a[i] != 44)
43 __builtin_abort ();
46 int main(int argc)
48 int array[s];
49 #pragma omp target
51 for (int i = 0; i < s; i++)
53 int v = foo (i);
54 array[i] = v;
57 verify (array);
58 return 0;