Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/torture/pr83293.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line source
// PR tree-optimization/83293 typedef __SIZE_TYPE__ size_t; template <typename T, typename> struct A { T a; A (T x) : a(x) {} T foo () { return a; } }; template <typename T, typename U, typename V> int operator==(A<T, V> x, A<U, V> p2) { return x.foo () == p2.foo (); } struct B { struct { int *b, *c; } d; }; struct C : B { A<int *, int> bar () { return d.b; } A<int *, int> baz () { return d.c; } size_t boo () { return d.c - d.b; } int zoo () { return bar () == baz (); } }; struct D { C e; } a; size_t b; size_t test (int x) { size_t c (x * b); if (!a.e.zoo ()) { x += 2; for (size_t d = 0, e = a.e.boo (); d < e; ++d) c += test (0); } c += (x - 1) * b; return c; }