* auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / store-expr2.C
blob1dffbcc1aae8a10f158188982b2210fcab53743f
1 // { dg-do run { target i?86-*-* x86_64-*-*} }
2 // { dg-require-effective-target ilp32 }
3 // { dg-options "-mtune=generic -O2" }
4 class G {};
6 struct N {
7   N *a;
8 };
10 struct V {
11   typedef N *W;
12   W *m, *n;
13   int s() const { return int(n - m); }
14   const W &operator[](int x) const { return *(m + x); }
17 struct H;
19 struct J {
20   N *c;
21   H *d;
22   J(N *x, H *y) : c(x), d(y) {}
25 struct K {
26   const N *c;
27   const H *d;
28   K(const N *x, const H *y) : c(x), d(y) {}
29   K(const J &x) : c(x.c), d(x.d) {}
32 struct H {
33   V e;
34   int f;
36   J u()
37   {
38     for (int x = 0; x < e.s(); ++x)
39       if (e[x])
40         return J(e[x], this);
41     return v();
42   }
43   J v() { return J((N*)64, this); }
46 struct I {
47   H d;
48   J u() { return d.u(); }
49   J v() { return d.v(); }
52 struct bar {
53   virtual ~bar() {}
56 struct E {
57   K g;
58   E(K x) : g(x) {}
61 struct foo : public bar {
62   K h;
63   E i;
64   foo(const K x, const E &y) : h(x), i(y) {}
67 struct A {
68   I *l;
69   foo *baz() const;
72 foo *A::baz() const
74   return new foo(l->u(), E(l->v()));
77 A x;
78 I i;
79 foo *f;
81 int main ()
83   x.l = &i;
84   f = x.baz();
85   if (f->h.c != f->i.g.c || f->h.d != f->i.g.d)
86     return 1;
87   return 0;