From 67ffcaafa83abe572804539424693e8c6719b928 Mon Sep 17 00:00:00 2001 From: Ted Kremenek <kremenek@apple.com> Date: Tue, 15 Oct 2013 04:28:42 +0000 Subject: [PATCH] Document the presence of the new Objective-C++ mangling for qualified-id. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192670 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LanguageExtensions.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/LanguageExtensions.rst b/docs/LanguageExtensions.rst index 44916f7db79..87558f0ee2a 100644 --- a/docs/LanguageExtensions.rst +++ b/docs/LanguageExtensions.rst @@ -1256,6 +1256,21 @@ Query for these features with ``__has_attribute(ns_consumed)``, ``__has_attribute(ns_returns_retained)``, etc. +Objective-C++ ABI: protocol-qualifier mangling of parameters +------------------------------------------------------------ + +Starting with LLVM 3.4, Clang produces a new mangling for parameters whose +type is a qualified-``id`` (e.g., ``id<Foo>``). This mangling allows such +parameters to be differentiated from those with the regular unqualified ``id`` +type. + +This was a non-backward compatible mangling change to the ABI. This change +allows proper overloading, and also prevents mangling conflicts with template +parameters of protocol-qualified type. + +Query the presence of this new mangling with +``__has_feature(objc_protocol_qualifier_mangling)``. + Function Overloading in C ========================= -- GitLab