[PATCH] D22884: [codeview] Emit vftable records

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 13:02:30 PDT 2016


rnk created this revision.
rnk added reviewers: dblaikie, aprantl, dexonsmith.
rnk added a subscriber: llvm-commits.

Works towards fixing PR28150

Adds a custom DWARF tag so that we can represent this information in our
DI metadata. VFTable information appears in the elements list of
complete DICompositeTypes and looks like this:

  DIDerivedType(
    tag: DW_TAG_LLVM_vftable,
    scope: !<CompositeType>,
    baseType: !<OverriddenVFTable>,
    offset: <VFPtrOffset>,
    name: <VFTableName>,
    extraData: !<MethodList>,
    flags: DIFlagArtificial)

The OverriddenVFTable slot references the vftable from the base class.

https://reviews.llvm.org/D22884

Files:
  include/llvm/IR/DIBuilder.h
  include/llvm/Support/Dwarf.def
  lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  lib/CodeGen/AsmPrinter/CodeViewDebug.h
  lib/IR/DIBuilder.cpp
  lib/IR/Verifier.cpp
  test/DebugInfo/COFF/types-data-members.ll
  test/DebugInfo/COFF/vftables.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22884.65790.patch
Type: text/x-patch
Size: 52062 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160727/8f97feaf/attachment.bin>


More information about the llvm-commits mailing list