You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
4 months ago
|
; 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: }
|