]> granicus.if.org Git - clang/commit
Change the mangling of a ref-qualifier on a function type so that
authorJohn McCall <rjmccall@apple.com>
Tue, 15 May 2012 02:01:59 +0000 (02:01 +0000)
committerJohn McCall <rjmccall@apple.com>
Tue, 15 May 2012 02:01:59 +0000 (02:01 +0000)
commit4b50263096457552ee86eb790c9638c6bb7357fa
tree06cb1d45e301c42ca887aaabd865a90f4d793f9f
parent20119a87fbb7719c161d81fc5f721f1ee6ed7e66
Change the mangling of a ref-qualifier on a function type so that
it is placed in a position which is never ambiguous with a
reference-to-function type.  This follows some recent discussion
and ensuing proposal on cxx-abi-dev.  It is not necessary to
change the mangling of CV-qualifiers because you cannot
apply CV-qualification in the normal sense to a function type.
It is not necessary to change the mangling of ref-qualifiers on
method declarations because they appear in an unambiguous
location.

In addition, mangle CV-qualifiers and ref-qualifiers on function
types when they occur in positions other than member pointers
(that is, when they appear as template arguments).

This is a minor ABI break with previous releases of clang.  It
is not considered critical because (1) ref-qualifiers are
relatively rare, since AFAIK we're the only implementing compiler,
and (2) they're particularly likely to come up in contexts that
do not rely on the ODR for correctness.  We apologize for any
inconvenience;  this is the right thing to do.

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