1 // Copyright (C) 2000 Free Software Foundation, Inc.
2 // Contributed by Nathan Sidwell 19 Jan 2001 <nathan@codesourcery.com>
4 // Bug 1701. building a vbase path was not using the shortest number of
5 // vbases. Normally that's just a pessimization, unfortunately during
6 // constructoring it leads to uninitialized reads.
8 extern "C" int printf (...);
26 printf ("Base (%u) ctor %x\n", sizeof (Base), this);
34 /*{{{ Base::~Base ()*/
37 printf ("Base dtor %x\n", this);
40 else if (this != addr)
47 /*{{{ struct M10 : virtual Base*/
48 struct M10 : virtual Base
61 printf ("M10 (%u) ctor %x\n", sizeof (M10), this);
72 printf ("M10 dtor %x\n", this);
75 else if (this != addr)
82 /*{{{ struct M4 : virtual Base, virtual M10*/
83 struct M4 : virtual Base, virtual M10
96 printf ("M4 (%u) ctor %x\n", sizeof (M4), this);
107 printf ("M4 dtor %x\n", this);
110 else if (this != addr)
117 /*{{{ struct M5 : M4*/
131 printf ("M5 (%u) ctor %x\n", sizeof (M5), this);
142 printf ("M5 dtor %x\n", this);
145 else if (this != addr)
152 /*{{{ struct M9 : M5, virtual M10*/
153 struct M9 : M5, virtual M10
166 printf ("M9 (%u), ctor %x\n", sizeof (M9), this);
177 printf ("M9 dtor %x\n", this);
180 else if (this != addr)
196 void *top = dynamic_cast <void *> (r);