; The following two object files were generated using the following command:
;   $ cl /Z7 /c t.cpp
; The contents of t.cpp follow:
;   struct A {
;     virtual void f();
;   };
;   struct B {
;     virtual void f();
;     virtual void g();
;   };
;   struct C {
;     virtual void f();
;     virtual void g();
;     virtual void h();
;   };
;   A a;
;   B b;
;   C c;

RUN: llvm-readobj -codeview %p/Inputs/codeview-vftable.obj.coff | FileCheck %s

CHECK:       VFTable (0x10F0) {
CHECK-NEXT:    TypeLeafKind: LF_VFTABLE (0x151D)
CHECK-NEXT:    CompleteClass: A
CHECK-NEXT:    OverriddenVFTable: 0x0
CHECK-NEXT:    VFPtrOffset: 0x0
CHECK-NEXT:    VFTableName: ??_7A@@6B@
CHECK-NEXT:    MethodName: ?f@A@@UEAAXXZ
CHECK-NEXT:  }
CHECK-NEXT:  VFTable (0x10F1) {
CHECK-NEXT:    TypeLeafKind: LF_VFTABLE (0x151D)
CHECK-NEXT:    CompleteClass: B
CHECK-NEXT:    OverriddenVFTable: ??_7A@@6B@ (0x10F0)
CHECK-NEXT:    VFPtrOffset: 0x0
CHECK-NEXT:    VFTableName: ??_7B@@6B@
CHECK-NEXT:    MethodName: ?f@B@@UEAAXXZ
CHECK-NEXT:    MethodName: ?g@B@@UEAAXXZ
CHECK-NEXT:  }
CHECK-NEXT:  VFTable (0x10F2) {
CHECK-NEXT:    TypeLeafKind: LF_VFTABLE (0x151D)
CHECK-NEXT:    CompleteClass: C
CHECK-NEXT:    OverriddenVFTable: ??_7B@@6B@ (0x10F1)
CHECK-NEXT:    VFPtrOffset: 0x0
CHECK-NEXT:    VFTableName: ??_7C@@6B@
CHECK-NEXT:    MethodName: ?f@C@@UEAAXXZ
CHECK-NEXT:    MethodName: ?g@C@@UEAAXXZ
CHECK-NEXT:    MethodName: ?h@C@@UEAAXXZ
CHECK-NEXT:  }
