diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index ff670af7b065..eed3805c6572 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -788,7 +788,7 @@ AuditedType (QualType AT, bool &IsPoniter) { IsVoidStarType(AT) || // If an ObjC object is type, assuming that it is not a CF function and // that it is an un-audited function. - AT->isObjCObjectPointerType()) + AT->isObjCObjectPointerType() || AT->isObjCBuiltinType()) return false; // All other pointers are assumed audited as harmless. return true; diff --git a/clang/test/ARCMT/objcmt-arc-cf-annotations.m b/clang/test/ARCMT/objcmt-arc-cf-annotations.m index bdd0e75d1d57..f0304a6d1a86 100644 --- a/clang/test/ARCMT/objcmt-arc-cf-annotations.m +++ b/clang/test/ARCMT/objcmt-arc-cf-annotations.m @@ -2038,3 +2038,10 @@ void rdar13783514(xpc_connection_t connection) { } // no-warning CFAttributedStringRef CFAttributedCreate(void *CFObj CF_CONSUMED) CF_RETURNS_RETAINED; + +@interface Action +- (SEL)action; +- (void)setAction:(SEL)aSelector; +- (id) target; +- (void)setTarget:(id)aTarget; +@end diff --git a/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result b/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result index 437369959f0c..7a31f5110c02 100644 --- a/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result +++ b/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result @@ -2140,3 +2140,10 @@ CFAttributedStringRef CFAttributedCreate(void *CFObj CF_CONSUMED) CF_RETURNS_RET CF_IMPLICIT_BRIDGING_DISABLED + +@interface Action +@property(nonatomic) SEL action; + +@property(nonatomic, unsafe_unretained) id target; + +@end