xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.cp/casts.cc (revision 4f645668ed707e1f969c546666f8c8e45e6f8888)
1 struct A
2 {
3   int a;
4   A (int aa): a (aa) {}
5 };
6 
7 struct B: public A
8 {
9   int b;
10   B (int aa, int bb): A (aa), b(bb) {}
11 };
12 
13 
14 struct Alpha
15 {
16   virtual void x() { }
17 };
18 
19 struct Gamma
20 {
21 };
22 
23 struct Derived : public Alpha
24 {
25 };
26 
27 struct VirtuallyDerived : public virtual Alpha
28 {
29 };
30 
31 struct DoublyDerived : public VirtuallyDerived,
32 		       public virtual Alpha,
33 		       public Gamma
34 {
35 };
36 
37 int
38 main (int argc, char **argv)
39 {
40   A *a = new B(42, 1729);
41   B *b = (B *) a;
42   A &ar = *b;
43   B &br = (B&)ar;
44 
45   Derived derived;
46   DoublyDerived doublyderived;
47 
48   Alpha *ad = &derived;
49   Alpha *add = &doublyderived;
50 
51   return 0;  /* breakpoint spot: casts.exp: 1 */
52 }
53