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