]> granicus.if.org Git - clang/commit
Don't actually add the __unsafe_unretained qualifier in MRC;
authorJohn McCall <rjmccall@apple.com>
Thu, 19 Nov 2015 02:28:03 +0000 (02:28 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 19 Nov 2015 02:28:03 +0000 (02:28 +0000)
commit2419506e4a00819d96f1bb4baa812dea412a94bc
treed23d6674175e478c4e98169dd04726520650010e
parenta0ee4770facee559732f4439ab5381cb39ff10fb
Don't actually add the __unsafe_unretained qualifier in MRC;
driving a canonical difference between that and an unqualified
type is a really bad idea when both are valid.  Instead, remember
that it was there in a non-canonical way, then look for that in
the one place we really care about it: block captures.  The net
effect closely resembles the behavior of a decl attribute, except
still closely following ARC's standard qualifier parsing rules.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@253534 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Type.h
lib/AST/Type.cpp
lib/AST/TypePrinter.cpp
lib/CodeGen/CGBlocks.cpp
lib/Sema/SemaType.cpp
test/CodeGenObjC/mrc-weak.m
test/CodeGenObjCXX/mrc-weak.mm [new file with mode: 0644]
test/SemaObjC/mrc-weak.m