[cfe-commits] r71597 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaDeclObjC.cpp test/SemaObjC/attr-deprecated.m test/SemaObjC/method-attributes.m
Daniel Dunbar
daniel at zuster.org
Tue May 12 17:27:16 PDT 2009
On Tue, May 12, 2009 at 2:36 PM, Fariborz Jahanian <fjahanian at apple.com> wrote:
> +def warn_attribute_method_def : Warning<
> + "method attribute may be specified on method declarations only">;
I find this wording easy to misread... what about "method attribute
can only be specified on method declarations"?
- Daniel
>
> }
>
> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=71597&r1=71596&r2=71597&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Tue May 12 16:36:23 2009
> @@ -1671,6 +1671,8 @@
> PrevMethod = ImpDecl->getClassMethod(Context, Sel);
> ImpDecl->addClassMethod(Context, ObjCMethod);
> }
> + if (AttrList)
> + Diag(EndLoc, diag::warn_attribute_method_def);
> }
> else if (ObjCCategoryImplDecl *CatImpDecl =
> dyn_cast<ObjCCategoryImplDecl>(ClassDecl)) {
> @@ -1681,6 +1683,8 @@
> PrevMethod = CatImpDecl->getClassMethod(Context, Sel);
> CatImpDecl->addClassMethod(Context, ObjCMethod);
> }
> + if (AttrList)
> + Diag(EndLoc, diag::warn_attribute_method_def);
> }
> if (PrevMethod) {
> // You can never have two method definitions with the same name.
>
> Modified: cfe/trunk/test/SemaObjC/attr-deprecated.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/attr-deprecated.m?rev=71597&r1=71596&r2=71597&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/attr-deprecated.m (original)
> +++ cfe/trunk/test/SemaObjC/attr-deprecated.m Tue May 12 16:36:23 2009
> @@ -9,7 +9,7 @@
>
> @implementation A
> + (void)F __attribute__((deprecated))
> -{
> +{ // expected-warning {{method attribute may be specified on method declarations only}}
> [self F]; // no warning, since the caller is also deprecated.
> }
>
>
> Modified: cfe/trunk/test/SemaObjC/method-attributes.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/method-attributes.m?rev=71597&r1=71596&r2=71597&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/method-attributes.m (original)
> +++ cfe/trunk/test/SemaObjC/method-attributes.m Tue May 12 16:36:23 2009
> @@ -8,3 +8,25 @@
> -(void) m0 __attribute__((noreturn));
> -(void) m1 __attribute__((unused));
> @end
> +
> +
> + at interface INTF
> +- (int) foo1: (int)arg1 __attribute__((deprecated));
> +
> +- (int) foo: (int)arg1;
> +
> +- (int) foo2: (int)arg1 __attribute__((deprecated)) __attribute__((unavailable));
> + at end
> +
> + at implementation INTF
> +- (int) foo: (int)arg1 __attribute__((deprecated)){ // expected-warning {{method attribute may be specified}}
> + return 10;
> +}
> +- (int) foo1: (int)arg1 {
> + return 10;
> +}
> +- (int) foo2: (int)arg1 __attribute__((deprecated)) { // expected-warning {{method attribute may be specified}}
> + return 10;
> +}
> + at end
> +
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list