NonNull,
ObjCException,
ObjCNSObject,
- ObjCOwnershipCFRelease, // Clang/Checker-specific.
- ObjCOwnershipCFRetain, // Clang/Checker-specific.
+ CFOwnershipRelease, // Clang/Checker-specific.
+ CFOwnershipRetain, // Clang/Checker-specific.
ObjCOwnershipMakeCollectable, // Clang/Checker-specific.
ObjCOwnershipRelease, // Clang/Checker-specific.
ObjCOwnershipRetain, // Clang/Checker-specific.
};
// Checker-specific attributes.
-DEF_SIMPLE_ATTR(ObjCOwnershipCFRelease);
+DEF_SIMPLE_ATTR(CFOwnershipRelease);
DEF_SIMPLE_ATTR(ObjCOwnershipRelease);
-DEF_SIMPLE_ATTR(ObjCOwnershipCFRetain);
+DEF_SIMPLE_ATTR(CFOwnershipRetain);
DEF_SIMPLE_ATTR(ObjCOwnershipRetain);
DEF_SIMPLE_ATTR(ObjCOwnershipMakeCollectable);
DEF_SIMPLE_ATTR(ObjCOwnershipReturns);
AT_nothrow,
AT_nsobject,
AT_objc_exception,
- AT_objc_ownership_cfrelease, // Clang-specific.
- AT_objc_ownership_cfretain, // Clang-specific.
+ AT_cf_ownership_release, // Clang-specific.
+ AT_cf_ownership_retain, // Clang-specific.
AT_objc_ownership_make_collectable, // Clang-specific.
AT_objc_ownership_release, // Clang-specific.
AT_objc_ownership_retain, // Clang-specific.
const ParmVarDecl *PD){
if (PD->getAttr<ObjCOwnershipRetainAttr>())
Summ.setArgEffect(AF, i, IncRefMsg);
- else if (PD->getAttr<ObjCOwnershipCFRetainAttr>())
+ else if (PD->getAttr<CFOwnershipRetainAttr>())
Summ.setArgEffect(AF, i, IncRef);
else if (PD->getAttr<ObjCOwnershipReleaseAttr>())
Summ.setArgEffect(AF, i, DecRefMsg);
- else if (PD->getAttr<ObjCOwnershipCFReleaseAttr>())
+ else if (PD->getAttr<CFOwnershipReleaseAttr>())
Summ.setArgEffect(AF, i, DecRef);
else if (PD->getAttr<ObjCOwnershipMakeCollectableAttr>())
Summ.setArgEffect(AF, i, MakeCollectable);
SIMPLE_ATTR(ObjCException);
SIMPLE_ATTR(ObjCNSObject);
- SIMPLE_ATTR(ObjCOwnershipCFRelease);
- SIMPLE_ATTR(ObjCOwnershipCFRetain);
+ SIMPLE_ATTR(CFOwnershipRelease);
+ SIMPLE_ATTR(CFOwnershipRetain);
SIMPLE_ATTR(ObjCOwnershipMakeCollectable);
SIMPLE_ATTR(ObjCOwnershipRelease);
SIMPLE_ATTR(ObjCOwnershipRetain);
case Attr::ObjCException:
case Attr::ObjCNSObject:
- case Attr::ObjCOwnershipCFRelease:
- case Attr::ObjCOwnershipCFRetain:
+ case Attr::CFOwnershipRelease:
+ case Attr::CFOwnershipRetain:
case Attr::ObjCOwnershipMakeCollectable:
case Attr::ObjCOwnershipRelease:
case Attr::ObjCOwnershipRetain:
case 18:
if (!memcmp(Str, "warn_unused_result", 18)) return AT_warn_unused_result;
break;
+ case 19:
+ if (!memcmp(Str, "cf_ownership_retain", 19))
+ return AT_cf_ownership_retain;
+ break;
+ case 20:
+ if (!memcmp(Str, "cf_ownership_release", 20))
+ return AT_cf_ownership_release;
+ break;
case 21:
if (!memcmp(Str, "objc_ownership_retain", 21))
return AT_objc_ownership_retain;
if (!memcmp(Str, "no_instrument_function", 22))
return AT_no_instrument_function;
break;
- case 23:
- if (!memcmp(Str, "objc_ownership_cfretain", 23))
- return AT_objc_ownership_cfretain;
- break;
- case 24:
- if (!memcmp(Str, "objc_ownership_cfrelease", 24))
- return AT_objc_ownership_cfrelease;
- break;
case 31:
if (!memcmp(Str, "objc_ownership_make_collectable", 31))
return AT_objc_ownership_make_collectable;
default:
assert(0 && "invalid ownership attribute");
return;
- case AttributeList::AT_objc_ownership_cfrelease:
- name = "objc_ownership_cfrelease"; break;
- case AttributeList::AT_objc_ownership_cfretain:
- name = "objc_ownership_cfretain"; break;
+ case AttributeList::AT_cf_ownership_release:
+ name = "cf_ownership_release"; break;
+ case AttributeList::AT_cf_ownership_retain:
+ name = "cf_ownership_retain"; break;
case AttributeList::AT_objc_ownership_make_collectable:
name = "objc_ownership_make_collectable"; break;
case AttributeList::AT_objc_ownership_release:
default:
assert(0 && "invalid ownership attribute");
return;
- case AttributeList::AT_objc_ownership_cfrelease:
- d->addAttr(::new (S.Context) ObjCOwnershipCFReleaseAttr()); return;
- case AttributeList::AT_objc_ownership_cfretain:
- d->addAttr(::new (S.Context) ObjCOwnershipCFRetainAttr()); return;
+ case AttributeList::AT_cf_ownership_release:
+ d->addAttr(::new (S.Context) CFOwnershipReleaseAttr()); return;
+ case AttributeList::AT_cf_ownership_retain:
+ d->addAttr(::new (S.Context) CFOwnershipRetainAttr()); return;
case AttributeList::AT_objc_ownership_make_collectable:
d->addAttr(::new (S.Context) ObjCOwnershipMakeCollectableAttr()); return;
case AttributeList::AT_objc_ownership_release:
case AttributeList::AT_nothrow: HandleNothrowAttr (D, Attr, S); break;
// Checker-specific.
- case AttributeList::AT_objc_ownership_cfrelease:
- case AttributeList::AT_objc_ownership_cfretain:
+ case AttributeList::AT_cf_ownership_release:
+ case AttributeList::AT_cf_ownership_retain:
HandleObjCOwnershipAttr(D, Attr, S); break;
case AttributeList::AT_objc_ownership_make_collectable:
case AttributeList::AT_objc_ownership_release:
@interface TestOwnershipAttr : NSObject
- (NSString*) returnsAnOwnedString __attribute__((objc_ownership_returns));
- (void) myRetain:(id)__attribute__((objc_ownership_retain))obj;
-- (void) myCFRetain:(id)__attribute__((objc_ownership_cfretain))obj;
+- (void) myCFRetain:(id)__attribute__((cf_ownership_retain))obj;
- (void) myRelease:(id)__attribute__((objc_ownership_release))obj;
-- (void) myCFRelease:(id)__attribute__((objc_ownership_cfrelease))obj;
+- (void) myCFRelease:(id)__attribute__((cf_ownership_release))obj;
- (void) makeCollectable:(id)__attribute__((objc_ownership_make_collectable))obj;
@end
@interface TestOwnershipAttr : NSObject
- (NSString*) returnsAnOwnedString __attribute__((objc_ownership_returns));
- (void) myRetain:(id)__attribute__((objc_ownership_retain))obj;
-- (void) myCFRetain:(id)__attribute__((objc_ownership_cfretain))obj;
+- (void) myCFRetain:(id)__attribute__((cf_ownership_retain))obj;
- (void) myRelease:(id)__attribute__((objc_ownership_release))obj;
-- (void) myCFRelease:(id)__attribute__((objc_ownership_cfrelease))obj;
+- (void) myCFRelease:(id)__attribute__((cf_ownership_release))obj;
- (void) myRetain __attribute__((objc_ownership_retain));
- (void) myRelease __attribute__((objc_ownership_release));