1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm-only -fdump-vtable-layouts 2>&1 | FileCheck %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// A collection of big class hierarchies and their vtables.
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaonamespace Test1 {
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C0
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C1
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  virtual public C0
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C2
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  public C0
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C1
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C3
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  virtual public C0
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C1
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C2
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k1;
28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k2;
29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k3;
30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C4
32ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  public C2
33ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C3
34ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C0
35ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
36ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
37ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
38ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C5
39ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  public C0
40ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C4
41ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C2
42ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C1
43ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C3
44ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
45ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
46ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
47ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C6
48ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  virtual public C3
49ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C0
50ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C5
51ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C4
52ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C1
53ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
54ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
55ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
56ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C7
57ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  virtual public C5
58ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C6
59ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C3
60ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C4
61ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C2
62ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
63ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
64ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k1;
65ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
66ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C8
67ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  public C7
68ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C5
69ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C3
70ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C4
71ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C1
72ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C2
73ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
74ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
75ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k1;
76ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
77ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
78ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK:     Vtable for 'Test1::C9' (87 entries).
79ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   0 | vbase_offset (344)
80ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   1 | vbase_offset (312)
81ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   2 | vbase_offset (184)
82ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   3 | vbase_offset (168)
83ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   4 | vbase_offset (120)
84ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   5 | vbase_offset (48)
85ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   6 | vbase_offset (148)
86ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   7 | vbase_offset (152)
87ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   8 | offset_to_top (0)
88ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:   9 | Test1::C9 RTTI
89ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 0) vtable address --
90ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C9, 0) vtable address --
91ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  10 | void Test1::C9::f()
92ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  11 | vbase_offset (104)
93ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  12 | vbase_offset (132)
94ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  13 | vbase_offset (136)
95ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  14 | offset_to_top (-16)
96ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  15 | Test1::C9 RTTI
97ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 16) vtable address --
98ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C4, 16) vtable address --
99ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  16 | vbase_offset (72)
100ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  17 | vbase_offset (120)
101ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  18 | vbase_offset (100)
102ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  19 | vbase_offset (104)
103ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  20 | offset_to_top (-48)
104ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  21 | Test1::C9 RTTI
105ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 48) vtable address --
106ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C5, 48) vtable address --
107ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C6, 48) vtable address --
108ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  22 | vbase_offset (84)
109ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  23 | offset_to_top (-64)
110ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  24 | Test1::C9 RTTI
111ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C1, 64) vtable address --
112ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  25 | vbase_offset (32)
113ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  26 | vbase_offset (60)
114ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  27 | vbase_offset (64)
115ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  28 | offset_to_top (-88)
116ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  29 | Test1::C9 RTTI
117ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 88) vtable address --
118ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C4, 88) vtable address --
119ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  30 | vbase_offset (44)
120ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  31 | offset_to_top (-104)
121ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  32 | Test1::C9 RTTI
122ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C1, 104) vtable address --
123ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  33 | vbase_offset (28)
124ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  34 | vbase_offset (32)
125ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  35 | offset_to_top (-120)
126ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  36 | Test1::C9 RTTI
127ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 120) vtable address --
128ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C3, 120) vtable address --
129ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  37 | vbase_offset (-4)
130ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  38 | offset_to_top (-152)
131ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  39 | Test1::C9 RTTI
132ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C1, 152) vtable address --
133ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  40 | vbase_offset (-48)
134ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  41 | vbase_offset (-20)
135ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  42 | vbase_offset (-16)
136ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  43 | offset_to_top (-168)
137ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  44 | Test1::C9 RTTI
138ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 168) vtable address --
139ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C4, 168) vtable address --
140ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  45 | vbase_offset (160)
141ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  46 | vbase_offset (-136)
142ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  47 | vbase_offset (-16)
143ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  48 | vbase_offset (128)
144ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  49 | vbase_offset (-64)
145ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  50 | vbase_offset (-36)
146ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  51 | vbase_offset (-32)
147ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  52 | offset_to_top (-184)
148ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  53 | Test1::C9 RTTI
149ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 184) vtable address --
150ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C4, 184) vtable address --
151ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C7, 184) vtable address --
152ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C8, 184) vtable address --
153ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  54 | vbase_offset (-88)
154ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  55 | vbase_offset (-40)
155ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  56 | vbase_offset (-60)
156ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  57 | vbase_offset (-56)
157ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  58 | offset_to_top (-208)
158ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  59 | Test1::C9 RTTI
159ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 208) vtable address --
160ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C5, 208) vtable address --
161ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  60 | vbase_offset (-76)
162ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  61 | offset_to_top (-224)
163ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  62 | Test1::C9 RTTI
164ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C1, 224) vtable address --
165ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  63 | vbase_offset (-92)
166ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  64 | vbase_offset (-88)
167ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  65 | offset_to_top (-240)
168ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  66 | Test1::C9 RTTI
169ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 240) vtable address --
170ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C3, 240) vtable address --
171ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  67 | vbase_offset (-124)
172ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  68 | offset_to_top (-272)
173ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  69 | Test1::C9 RTTI
174ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C1, 272) vtable address --
175ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  70 | vbase_offset (-140)
176ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  71 | vbase_offset (-136)
177ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  72 | offset_to_top (-288)
178ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  73 | Test1::C9 RTTI
179ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 288) vtable address --
180ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  74 | vbase_offset (-192)
181ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  75 | vbase_offset (-144)
182ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  76 | vbase_offset (-164)
183ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  77 | vbase_offset (-160)
184ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  78 | offset_to_top (-312)
185ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  79 | Test1::C9 RTTI
186ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C2, 312) vtable address --
187ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C5, 312) vtable address --
188ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  80 | vbase_offset (-180)
189ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  81 | offset_to_top (-328)
190ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  82 | Test1::C9 RTTI
191ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:       -- (Test1::C1, 328) vtable address --
192ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  83 | vbase_offset (-196)
193ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  84 | vbase_offset (-192)
194ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  85 | offset_to_top (-344)
195ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK-NEXT:  86 | Test1::C9 RTTI
196ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclass C9
197ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao :  virtual public C6
198ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C2
199ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  public C4
200ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao ,  virtual public C8
201ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao{
202ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k0;
203ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k1;
204ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k2;
205ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int k3;
206ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  virtual void f();
207ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
208ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid C9::f() { }
209ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
210ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
211