Simplify comparison of attrs in IPA ICF.
[official-gcc.git] / libgomp / testsuite / libgomp.c++ / pr69555-2.C
blob78776ea7c9e1fed804183f9e4217678ff447386d
1 // PR libgomp/69555
2 // { dg-do run }
4 __attribute__((noinline, noclone)) void
5 f1 (int y)
7   int a[y - 2];
8   int (&c)[y - 2] = a;
9   for (int i = 0; i < y - 2; i++)
10     c[i] = i + 4;
12   #pragma omp target firstprivate (c)
13   {
14     for (int i = 0; i < y - 2; i++)
15       {
16         if (c[i] != i + 4)
17           __builtin_abort ();
18         c[i] = i + 9;
19       }
20     asm volatile ("" : : "r" (&c[0]) : "memory");
21     for (int i = 0; i < y - 2; i++)
22       if (c[i] != i + 9)
23         __builtin_abort ();
24   }
25   for (int i = 0; i < y - 2; i++)
26     if (c[i] != i + 4)
27       __builtin_abort ();
30 __attribute__((noinline, noclone)) void
31 f2 (int y)
33   int a[y - 2];
34   int (&c)[y - 2] = a;
35   for (int i = 0; i < y - 2; i++)
36     c[i] = i + 4;
38   #pragma omp target private (c)
39   {
40     for (int i = 0; i < y - 2; i++)
41       c[i] = i + 9;
42     asm volatile ("" : : "r" (&c[0]) : "memory");
43     for (int i = 0; i < y - 2; i++)
44       if (c[i] != i + 9)
45         __builtin_abort ();
46   }
47   for (int i = 0; i < y - 2; i++)
48     if (c[i] != i + 4)
49       __builtin_abort ();
52 int
53 main ()
55   f1 (6);
56   f2 (6);
57   return 0;