[PATCH] [ms-cxxabi] Improve vbtable name mangling accuracy

Reid Kleckner rnk at google.com
Fri Jan 3 11:50:08 PST 2014


Hi majnemer,

This makes us more compatible with MSVC 2012+ and fixes PR17748 where we
would give two tables the same name.

Rather than doing a fresh depth-first traversal of the inheritance graph
for every record's vbtables, now we memoize vbtable paths for each
record.  By doing memoization, we end up considering virtual bases of
subobjects that come later in the depth-first traversal.  Where
previously we would have ignored a virtual base that we'd already seen,
we now consider it for name mangling purposes without emitting a
duplicate vbtable for it.

http://llvm-reviews.chandlerc.com/D2509

Files:
  include/clang/AST/VTableBuilder.h
  lib/AST/VTableBuilder.cpp
  lib/CodeGen/MicrosoftCXXABI.cpp
  test/CodeGenCXX/microsoft-abi-vbtables.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2509.1.patch
Type: text/x-patch
Size: 23262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140103/69cd412c/attachment.bin>


More information about the cfe-commits mailing list