1 // { dg-do run  }
2 class S1 { int i; };
3 class S2 { int i; };
4 class VB {
5 public:
foo()6   virtual void foo() { }
7 };
8 
9 class D : public S1, virtual public VB {
10 } d;
11 
12 class E : public S2, public D {
13 } e;
14 
main()15 int main() {
16   return (char *)&e - (char *)dynamic_cast<E*>((D*)&e);
17 }
18