1*9880d681SAndroid Build Coastguard Worker; The following two object files were generated using the following command: 2*9880d681SAndroid Build Coastguard Worker; $ cl /Z7 /c t.cpp 3*9880d681SAndroid Build Coastguard Worker; The contents of t.cpp follow: 4*9880d681SAndroid Build Coastguard Worker; struct A { 5*9880d681SAndroid Build Coastguard Worker; virtual void f(); 6*9880d681SAndroid Build Coastguard Worker; }; 7*9880d681SAndroid Build Coastguard Worker; struct B { 8*9880d681SAndroid Build Coastguard Worker; virtual void f(); 9*9880d681SAndroid Build Coastguard Worker; virtual void g(); 10*9880d681SAndroid Build Coastguard Worker; }; 11*9880d681SAndroid Build Coastguard Worker; struct C { 12*9880d681SAndroid Build Coastguard Worker; virtual void f(); 13*9880d681SAndroid Build Coastguard Worker; virtual void g(); 14*9880d681SAndroid Build Coastguard Worker; virtual void h(); 15*9880d681SAndroid Build Coastguard Worker; }; 16*9880d681SAndroid Build Coastguard Worker; A a; 17*9880d681SAndroid Build Coastguard Worker; B b; 18*9880d681SAndroid Build Coastguard Worker; C c; 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard WorkerRUN: llvm-readobj -codeview %p/Inputs/codeview-vftable.obj.coff | FileCheck %s 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard WorkerCHECK: VFTable (0x10F0) { 23*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: TypeLeafKind: LF_VFTABLE (0x151D) 24*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: CompleteClass: A 25*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: OverriddenVFTable: 0x0 26*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFPtrOffset: 0x0 27*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFTableName: ??_7A@@6B@ 28*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: MethodName: ?f@A@@UEAAXXZ 29*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: } 30*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFTable (0x10F1) { 31*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: TypeLeafKind: LF_VFTABLE (0x151D) 32*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: CompleteClass: B 33*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: OverriddenVFTable: ??_7A@@6B@ (0x10F0) 34*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFPtrOffset: 0x0 35*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFTableName: ??_7B@@6B@ 36*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: MethodName: ?f@B@@UEAAXXZ 37*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: MethodName: ?g@B@@UEAAXXZ 38*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: } 39*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFTable (0x10F2) { 40*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: TypeLeafKind: LF_VFTABLE (0x151D) 41*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: CompleteClass: C 42*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: OverriddenVFTable: ??_7B@@6B@ (0x10F1) 43*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFPtrOffset: 0x0 44*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: VFTableName: ??_7C@@6B@ 45*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: MethodName: ?f@C@@UEAAXXZ 46*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: MethodName: ?g@C@@UEAAXXZ 47*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: MethodName: ?h@C@@UEAAXXZ 48*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: } 49