[codeview] Emit vtable shape information
authorReid Kleckner <rnk@google.com>
Wed, 31 Aug 2016 15:59:30 +0000 (15:59 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 31 Aug 2016 15:59:30 +0000 (15:59 +0000)
commit9dac47319d29430e6fc6e04d2839e0f2c45dffac
treea14fd5fa316c0b6db97cd62814052b0b6b009367
parent9099901099fe65df184c5ff9cb4d08cfc4fd5eea
[codeview] Emit vtable shape information

The shape of the vtable is passed down as the size of the
__vtbl_ptr_type. This special pointer type appears both as the pointee
type of the vptr type, and by itself in every dynamic class. For classes
with multiple vtables, only the shape of the primary vftable is
included, as the shape of all secondary vftables will be the same as in
the base class.

Fixes PR28150

llvm-svn: 280254
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
llvm/lib/DebugInfo/CodeView/TypeDumper.cpp
llvm/test/DebugInfo/COFF/types-data-members.ll
llvm/test/DebugInfo/COFF/vftables.ll [new file with mode: 0644]