[llvm-pdbdump] Re-write the record layout code to be more resilient.
authorZachary Turner <zturner@google.com>
Mon, 24 Apr 2017 17:47:24 +0000 (17:47 +0000)
committerZachary Turner <zturner@google.com>
Mon, 24 Apr 2017 17:47:24 +0000 (17:47 +0000)
commit1690164cac96cf3670f380a74b27443c71b6a32e
tree199cc2fd16d66ae9664d50afbfdf01eb536276a5
parentcadadabb7664407be7553363e1a580f92d681548
[llvm-pdbdump] Re-write the record layout code to be more resilient.

This reworks the way virtual bases are handled, and also the way
padding is detected across multiple levels of aggregates, producing
a much more accurate result.

llvm-svn: 301203
25 files changed:
llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
llvm/include/llvm/DebugInfo/PDB/UDTLayout.h
llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp
llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
llvm/lib/DebugInfo/PDB/UDTLayout.cpp
llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp [new file with mode: 0644]
llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.pdb [new file with mode: 0644]
llvm/test/tools/llvm-pdbdump/class-layout.test
llvm/test/tools/llvm-pdbdump/complex-padding-graphical.test [new file with mode: 0644]
llvm/test/tools/llvm-pdbdump/simple-padding-graphical.test
llvm/test/tools/llvm-pdbdump/simple-padding-text.test [deleted file]
llvm/tools/llvm-pdbdump/LinePrinter.cpp
llvm/tools/llvm-pdbdump/PrettyClassDefinitionDumper.cpp
llvm/tools/llvm-pdbdump/PrettyClassLayoutGraphicalDumper.cpp
llvm/tools/llvm-pdbdump/PrettyClassLayoutGraphicalDumper.h
llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp
llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.h
llvm/tools/llvm-pdbdump/PrettyTypeDumper.cpp
llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp
llvm/tools/llvm-pdbdump/PrettyVariableDumper.h
llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
llvm/tools/llvm-pdbdump/llvm-pdbdump.h