[PATCH] D21410: [pdb] Change type visitor pattern to use dynamic polymorphism

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 16 10:47:35 PDT 2016


zturner updated this revision to Diff 60994.
zturner added a comment.

Rebases on top of Rui's recent patches.

One added advantage of this approach is that, while rebasing, I actually caught a couple of bugs in Rui's patch that would not have been possible to catch at compile time otherwise.  Mainly there were previously separate visitation functions for class, struct, and interface, but these are all implemented by a single record type, and thus have only a single visitation function.  This was caught because when I added the `override` keyword to them, the compiler error'ed saying that there was no suitable function to override.


http://reviews.llvm.org/D21410

Files:
  include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
  include/llvm/DebugInfo/CodeView/TypeDumper.h
  include/llvm/DebugInfo/CodeView/TypeRecords.def
  include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
  include/llvm/DebugInfo/PDB/Raw/RawError.h
  lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  lib/DebugInfo/CodeView/CMakeLists.txt
  lib/DebugInfo/CodeView/CVTypeVisitor.cpp
  lib/DebugInfo/CodeView/TypeDumper.cpp
  lib/DebugInfo/CodeView/TypeStreamMerger.cpp
  lib/DebugInfo/PDB/Raw/RawError.cpp
  lib/DebugInfo/PDB/Raw/TpiStream.cpp
  tools/llvm-pdbdump/LLVMOutputStyle.cpp
  tools/llvm-readobj/COFFDumper.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21410.60994.patch
Type: text/x-patch
Size: 55258 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160616/0e2c3562/attachment.bin>


More information about the llvm-commits mailing list