[codeview] support emitting indirect virtual base class information
authorBob Haarman <llvm@inglorion.net>
Tue, 25 Oct 2016 22:11:52 +0000 (22:11 +0000)
committerBob Haarman <llvm@inglorion.net>
Tue, 25 Oct 2016 22:11:52 +0000 (22:11 +0000)
commit26a87bd0306cd9ac6754bf6039f79bd9c777f842
tree3d1760068de99823484db35d3cf539746b3fe98e
parentde86241a097414640d1d410e68ac3287c24d9810
[codeview] support emitting indirect virtual base class information

Summary:
Fixes PR28281.

MSVC lists indirect virtual base classes in the field list of a class,
using LF_IVBCLASS records. This change makes LLVM emit such records
when processing DW_TAG_inheritance tags with the DIFlagVirtual and
(newly introduced) DIFlagIndirect tags.

Reviewers: rnk, ruiu, zturner

Differential Revision: https://reviews.llvm.org/D25578

llvm-svn: 285130
llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
llvm/include/llvm/IR/DebugInfoFlags.def
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
llvm/lib/DebugInfo/CodeView/TypeRecord.cpp
llvm/lib/IR/DebugInfoMetadata.cpp
llvm/test/DebugInfo/COFF/inheritance.ll