[PATCH] D45283: [COFF] Minimal serialization support for precompiled types records

Alexandre Ganea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 4 13:27:14 PDT 2018


aganea created this revision.
aganea added reviewers: rnk, ruiu, zturner.
Herald added a subscriber: llvm-commits.

This change adds support for the LF_PRECOMP and LF_ENDPRECOMP records required
to read/write Microsoft precompiled types .objs.
See https://en.wikipedia.org/wiki/Precompiled_header#Microsoft_Visual_C_and_C++

This also adds handling for the .debug$P section, which is actually a .debug$T
section in disguise, found only in precompiled .objs.

Side-note: the LF_PRECOMP and LF_ENDPRECOMP records are only used in .obj; they
are subsequently dropped during the PDB type merging phase. In the same way,
the .debug$P section is merged with the other .debug$T sections in the PDB.


Repository:
  rL LLVM

https://reviews.llvm.org/D45283

Files:
  include/llvm/DebugInfo/CodeView/CodeView.h
  include/llvm/DebugInfo/CodeView/TypeRecord.h
  include/llvm/ObjectYAML/COFFYAML.h
  include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
  include/llvm/ObjectYAML/CodeViewYAMLTypes.h
  lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  lib/CodeGen/AsmPrinter/CodeViewDebug.h
  lib/DebugInfo/CodeView/RecordName.cpp
  lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
  lib/DebugInfo/CodeView/TypeRecordMapping.cpp
  lib/ObjectYAML/COFFYAML.cpp
  lib/ObjectYAML/CodeViewYAMLTypes.cpp
  test/DebugInfo/Inputs/precomp-a.obj
  test/DebugInfo/Inputs/precomp.obj
  test/DebugInfo/precomp.test
  tools/llvm-pdbutil/DumpOutputStyle.cpp
  tools/llvm-pdbutil/InputFile.cpp
  tools/llvm-pdbutil/MinimalTypeDumper.cpp
  tools/llvm-readobj/COFFDumper.cpp
  tools/obj2yaml/coff2yaml.cpp
  tools/yaml2obj/yaml2coff.cpp
  unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45283.141031.patch
Type: text/x-patch
Size: 188539 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180404/90ca6dbd/attachment-0001.bin>


More information about the llvm-commits mailing list