]> granicus.if.org Git - clang/commit
MS ABI: Tweak pointer-to-member mangling/inheritance model selection
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 6 Feb 2014 10:59:19 +0000 (10:59 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 6 Feb 2014 10:59:19 +0000 (10:59 +0000)
commit595bf5c17f5f395d14c801b884d8569424cc34d0
tree0f3e1760ee079f0f138c87955b721bf3ce68ac3b
parenta494d331c8edcca1e36eb31a95f8fa51a959021e
MS ABI: Tweak pointer-to-member mangling/inheritance model selection

Properly determine the inheritance model when dealing with nullptr:
- If a nullptr template argument is being checked against
  pointer-to-member parameter, nail down an inheritance model.
  N.B. We will chose an inheritance model even if we won't ultimately
  choose the template to instantiate!  Cooky, right?
- Null pointer-to-datamembers have a virtual base table offset of -1,
  not zero. Previously, we chose an offset of 0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200920 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/MicrosoftMangle.cpp
lib/Sema/SemaCast.cpp
lib/Sema/SemaTemplate.cpp
test/CodeGenCXX/mangle-ms-templates-memptrs.cpp