]> granicus.if.org Git - clang/commit
[ms-cxxabi] Use sugared types in the mangler instead of canonical types
authorReid Kleckner <reid@kleckner.net>
Mon, 24 Jun 2013 19:21:52 +0000 (19:21 +0000)
committerReid Kleckner <reid@kleckner.net>
Mon, 24 Jun 2013 19:21:52 +0000 (19:21 +0000)
commitf21818dbeeb024ecf4c221ef08735f7c99a7acea
tree1ccc9daacdf8d206621506d7e671c4abb27ad89f
parentf75ece4a7e77583d9ac8172e3e44e0131a4061f4
[ms-cxxabi] Use sugared types in the mangler instead of canonical types

At this point, it's clear that the MSVC mangler uses the type-as-written
instead of the canonical type, so this should bring us closer to MSVC.
The main thrust of this change is to fix the way we mangle decayed array
parameters of function pointer parameters.  With a DecayedType sugar
node, this code can now be much simpler.

Fixes PR16096.

This also fixes a separate issue that Richard spotted in review.
Because separate declarations of the same entity can be spelled and
mangled differently, MSVC always mangles the earliest declaration in an
attempt to avoid link errors.  Clang now does the same.

Reviewers: rsmith

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184777 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/MicrosoftMangle.cpp
test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp