[AArch64] Fix SVE testsuite failures for ILP32 (PR 83846)
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr83293.C
blobf4556f3ee5279a7e222b6f85391550f655aa5c35
1 // PR tree-optimization/83293
3 typedef __SIZE_TYPE__ size_t;
4 template <typename T, typename> struct A {
5   T a;
6   A (T x) : a(x) {}
7   T foo () { return a; }
8 };
10 template <typename T, typename U, typename V>
11 int
12 operator==(A<T, V> x, A<U, V> p2)
14   return x.foo () == p2.foo ();
17 struct B { struct { int *b, *c; } d; };
18 struct C : B {
19   A<int *, int> bar () { return d.b; }
20   A<int *, int> baz () { return d.c; }
21   size_t boo () { return d.c - d.b; }
22   int zoo () { return bar () == baz (); }
24 struct D { C e; } a;
25 size_t b;
27 size_t
28 test (int x)
30   size_t c (x * b);
31   if (!a.e.zoo ())
32     {
33       x += 2;
34       for (size_t d = 0, e = a.e.boo (); d < e; ++d)
35         c += test (0);
36     }
37   c += (x - 1) * b;
38   return c;