diff options
| author | Ted Kremenek <kremenek@apple.com> | 2009-04-27 19:36:56 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2009-04-27 19:36:56 +0000 |
| commit | 84bfa2c2dcc90ed6907f2a7722f523b87063df80 (patch) | |
| tree | d6c752965505ac6af8f825603e83195fe2191c29 /clang/lib/Sema | |
| parent | bfa037705e01fc747492761af6ca0e39fd7fa8c6 (diff) | |
| download | bcm5719-llvm-84bfa2c2dcc90ed6907f2a7722f523b87063df80.tar.gz bcm5719-llvm-84bfa2c2dcc90ed6907f2a7722f523b87063df80.zip | |
Add two new checker-specific attributes: 'objc_ownership_release' and
'objc_ownership_cfrelease'. These are the 'release' equivalents of
'objc_ownership_retain' and 'objc_ownership_cfretain' respectively.
llvm-svn: 70235
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDeclAttr.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index cf722e511d3..c72b7ad7e81 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -1543,6 +1543,10 @@ static void HandleObjCOwnershipParmAttr(Decl *d, const AttributeList &Attr, default: assert(0 && "invalid ownership attribute"); return; + case AttributeList::AT_objc_ownership_release: + name = "objc_ownership_release"; break; + case AttributeList::AT_objc_ownership_cfrelease: + name = "objc_ownership_cfrelease"; break; case AttributeList::AT_objc_ownership_retain: name = "objc_ownership_retain"; break; case AttributeList::AT_objc_ownership_cfretain: @@ -1558,6 +1562,10 @@ static void HandleObjCOwnershipParmAttr(Decl *d, const AttributeList &Attr, default: assert(0 && "invalid ownership attribute"); return; + case AttributeList::AT_objc_ownership_release: + d->addAttr(::new (S.Context) ObjCOwnershipReleaseAttr()); return; + case AttributeList::AT_objc_ownership_cfrelease: + d->addAttr(::new (S.Context) ObjCOwnershipCFReleaseAttr()); return; case AttributeList::AT_objc_ownership_retain: d->addAttr(::new (S.Context) ObjCOwnershipRetainAttr()); return; case AttributeList::AT_objc_ownership_cfretain: @@ -1603,6 +1611,8 @@ static void ProcessDeclAttribute(Decl *D, const AttributeList &Attr, Sema &S) { case AttributeList::AT_nothrow: HandleNothrowAttr (D, Attr, S); break; // Checker-specific. + case AttributeList::AT_objc_ownership_release: + case AttributeList::AT_objc_ownership_cfrelease: case AttributeList::AT_objc_ownership_retain: case AttributeList::AT_objc_ownership_cfretain: HandleObjCOwnershipParmAttr(D, Attr, S); break; |

