hanchenye-llvm-project/clang/lib
Reid Kleckner 5f08094106 [ms-cxxabi] Improve vbtable name mangling accuracy
Summary:
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.

Reviewers: majnemer

CC: cfe-commits

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

llvm-svn: 198462
2014-01-03 23:42:00 +00:00
..
ARCMigrate Replacing calls to getAttr with calls to hasAttr for clarity. No functional change intended -- this only replaces Boolean uses of getAttr. 2013-12-19 02:39:40 +00:00
AST [ms-cxxabi] Improve vbtable name mangling accuracy 2014-01-03 23:42:00 +00:00
ASTMatchers [CMake] clang/lib: Prune redundant dependencies. 2013-12-10 02:36:22 +00:00
Analysis Switching getAttrs calls over to using a specific_attr_iterator. No functional changes intended. 2013-12-19 15:35:31 +00:00
Basic Refactored Builtin::Context::isPrintfLike and isScanfLike into a helper function. The implementations are identical, except for the format arguments being searched for. 2014-01-03 20:10:54 +00:00
CodeGen [ms-cxxabi] Improve vbtable name mangling accuracy 2014-01-03 23:42:00 +00:00
Driver Remove a tab that snuck in. 2014-01-02 15:34:59 +00:00
Edit Add front-end infrastructure now address space casts are in LLVM IR. 2013-12-11 13:39:46 +00:00
Format clang-format: Recognize single-line macro usages inside macros. 2014-01-03 11:50:46 +00:00
Frontend Silence a dubious GCC warning about a set but unused global. Indeed, the 2013-12-28 02:50:00 +00:00
FrontendTool Bury leaked pointers in a global array to silence a leak detector in --disable-free mode 2013-12-27 08:11:08 +00:00
Headers [CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DIR}/${BUILD_MODE}/(bin|lib) 2013-12-30 06:48:30 +00:00
Index [CMake] clang/lib: Satisfy dependencies to add *actually used* libraries on target_link_libraries() and LLVM_LINK_COMPONENTS. 2013-12-09 19:04:43 +00:00
Lex Switch over more of the parser to err_expected 2013-12-30 23:29:50 +00:00
Parse Using the quoted version of an attribute name for consistency with other attribute diagnostics. 2014-01-02 18:10:17 +00:00
Rewrite Implement MSVC header search algorithm in MicrosoftMode. 2013-12-27 19:46:16 +00:00
Sema Fix 80 col violation. 2014-01-03 19:53:09 +00:00
Serialization [objc] Refactor and improve functionality for the -Wunused-property-ivar warning. 2014-01-03 18:32:18 +00:00
StaticAnalyzer Fixed a FIXME; created a print method for Selectors that accepts a raw_ostream, and started using it in places it made sense. 2014-01-03 17:59:55 +00:00
Tooling CompilationDatabase.cpp:stripPositionalArgs(): Match not "no-integrated-as" but "-no-integrated-as", it really fixes r197229. 2013-12-14 06:03:28 +00:00
CMakeLists.txt Fix dependencies now that the ARC migrator depends on the static analyzer. 2013-08-22 15:50:02 +00:00
Makefile Fix dependencies now that the ARC migrator depends on the static analyzer. 2013-08-22 15:50:02 +00:00