]> granicus.if.org Git - clang/commit
Objective-C++ ARC: Improve the conversion to a const __unsafe_unretained reference.
authorDouglas Gregor <dgregor@apple.com>
Fri, 8 Nov 2013 02:04:24 +0000 (02:04 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 8 Nov 2013 02:04:24 +0000 (02:04 +0000)
commit3940e3b9c7cc89284117112e07ad1c925dcd0ab4
tree1a839cc4fe9e59e230bbf276bdee7322fad09c96
parent80aecf578fa0b24e1f4280820a1b6f1bf34862e0
Objective-C++ ARC: Improve the conversion to a const __unsafe_unretained reference.

Under ARC++, a reference to a const Objective-C pointer is implicitly
treated as __unsafe_unretained, and can be initialized with (e.g.) a
__strong lvalue. Make sure this behavior does not break template
argument deduction and (related) that partial ordering still prefers a
'T* const&' template over a 'T const&' template when this case kicks
in. Fixes <rdar://problem/14467941>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194239 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaOverload.cpp
lib/Sema/SemaTemplateDeduction.cpp
test/SemaObjCXX/arc-templates.mm