[cfe-commits] r68894 - in /cfe/trunk: lib/Parse/ParseObjc.cpp lib/Sema/SemaDeclObjC.cpp test/Analysis/region-1.m test/SemaObjC/method-conflict.m test/SemaObjC/protocol-forward-circular.m test/SemaObjC/protocol-test-2.m test/SemaObjC/protocol-unde

Daniel Dunbar daniel at zuster.org
Mon Apr 13 13:50:07 PDT 2009


On Sun, Apr 12, 2009 at 1:43 AM, Chris Lattner <sabre at nondot.org> wrote:

> Author: lattner
> Date: Sun Apr 12 03:43:13 2009
> New Revision: 68894
>
> URL: http://llvm.org/viewvc/llvm-project?rev=68894&view=rev
> Log:
> Fix rdar://6771034: don't warn on use of forward declared protocol in
> protocol
> list of another protocol definition.  This warning is very noisy and GCC
> doesn't
> produce it so existing code doesn't expect it.


Ok, seems like a necessary concession. However, this construct is also
somewhat questionable and at some point we should move back towards having
the warning enabled. Can we retain a -W.... for this?

 - Daniel


>
> Modified:
>    cfe/trunk/lib/Parse/ParseObjc.cpp
>    cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>    cfe/trunk/test/Analysis/region-1.m
>    cfe/trunk/test/SemaObjC/method-conflict.m
>    cfe/trunk/test/SemaObjC/protocol-forward-circular.m
>    cfe/trunk/test/SemaObjC/protocol-test-2.m
>    cfe/trunk/test/SemaObjC/protocol-undef.m
>
> Modified: cfe/trunk/lib/Parse/ParseObjc.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseObjc.cpp?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/lib/Parse/ParseObjc.cpp (original)
> +++ cfe/trunk/lib/Parse/ParseObjc.cpp Sun Apr 12 03:43:13 2009
> @@ -982,7 +982,7 @@
>
>   llvm::SmallVector<DeclPtrTy, 8> ProtocolRefs;
>   if (Tok.is(tok::less) &&
> -      ParseObjCProtocolReferences(ProtocolRefs, true, EndProtoLoc))
> +      ParseObjCProtocolReferences(ProtocolRefs, false, EndProtoLoc))
>     return DeclPtrTy();
>
>   DeclPtrTy ProtoType =
>
> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Sun Apr 12 03:43:13 2009
> @@ -503,7 +503,7 @@
>   }
>  }
>
> -/// ActOnForwardProtocolDeclaration -
> +/// ActOnForwardProtocolDeclaration - Handle @protocol foo;
>  Action::DeclPtrTy
>  Sema::ActOnForwardProtocolDeclaration(SourceLocation AtProtocolLoc,
>                                       const IdentifierLocPair *IdentList,
>
> Modified: cfe/trunk/test/Analysis/region-1.m
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/region-1.m?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/test/Analysis/region-1.m (original)
> +++ cfe/trunk/test/Analysis/region-1.m Sun Apr 12 03:43:13 2009
> @@ -19,14 +19,14 @@
>  @end  @class NSAttributedString, NSEvent, NSFont, NSFormatter, NSImage,
> NSMenu, NSText, NSView;
>  @class JabasectItem;
>  @protocol EcoClassifier;
> - at protocol EcoClassInterfaceCommons <EcoClassifier>    @end  @protocol
> EcoImplementation;  // expected-warning{{cannot find protocol}}
> + at protocol EcoClassInterfaceCommons <EcoClassifier>    @end  @protocol
> EcoImplementation;
>  @protocol EcoBehavioredClassifier <EcoClassInterfaceCommons>      -
> (NSArray *) implementations;
>  @end enum {
>  CK_UNRESTRICTED= 0,     CK_READ_ONLY,     CK_ADD_ONLY,     CK_REMOVE_ONLY
> };
>  @protocol EcoClass <EcoBehavioredClassifier>      - (NSArray *)
> ownedAttributes;
>  @end @protocol EcoNamespace;
>  @protocol EcoType;
> - at protocol EcoClassifier <EcoNamespace,EcoType>    - (NSArray *) features;
> // expected-warning 2 {{cannot find protocol}}
> + at protocol EcoClassifier <EcoNamespace,EcoType>    - (NSArray *) features;
>  @end @protocol EcoComment;
>  @protocol EcoElement <NSObject> - (NSArray *) ownedElements;
>  @end @protocol EcoDirectedRelationship;
>
> Modified: cfe/trunk/test/SemaObjC/method-conflict.m
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/method-conflict.m?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/method-conflict.m (original)
> +++ cfe/trunk/test/SemaObjC/method-conflict.m Sun Apr 12 03:43:13 2009
> @@ -25,7 +25,7 @@
>  }
>   CSSM_FIELDGROUP, *CSSM_FIELDGROUP_PTR;
>  @protocol XDUMLClassifier;
> - at protocol XDUMLClassInterfaceCommons <XDUMLClassifier>  //
> expected-warning {{cannot find protocol definition for 'XDUMLClassifier'}}
> + at protocol XDUMLClassInterfaceCommons <XDUMLClassifier>
>  @end  @protocol XDUMLImplementation;
>  @protocol XDUMLElement <NSObject> - (NSArray *) ownedElements;
>  @end @protocol XDUMLDataType;
>
> Modified: cfe/trunk/test/SemaObjC/protocol-forward-circular.m
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/protocol-forward-circular.m?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/protocol-forward-circular.m (original)
> +++ cfe/trunk/test/SemaObjC/protocol-forward-circular.m Sun Apr 12 03:43:13
> 2009
> @@ -1,7 +1,7 @@
>  // RUN: clang-cc -fsyntax-only -verify %s
>
>  @protocol B;
> - at protocol C < B > // expected-warning{{cannot find protocol definition for
> 'B'}} // expected-note{{previous definition is here}}
> + at protocol C < B > // expected-note{{previous definition is here}}
>  @end
>  @protocol A < C >
>  @end
>
> Modified: cfe/trunk/test/SemaObjC/protocol-test-2.m
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/protocol-test-2.m?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/protocol-test-2.m (original)
> +++ cfe/trunk/test/SemaObjC/protocol-test-2.m Sun Apr 12 03:43:13 2009
> @@ -10,7 +10,7 @@
>  - (INTF1<p1>*) meth;
>  @end
>
> - at protocol PROTO2<p1> // expected-warning {{cannot find protocol definition
> for 'p1'}}
> + at protocol PROTO2<p1>
>  @end
>
>  @protocol p1 @end
> @@ -27,5 +27,12 @@
>  @protocol p2 <p1>
>  @end
>
> - at protocol PROTO4 <p1, p2, PROTO, PROTO3, p3> // expected-warning {{cannot
> find protocol definition for 'p3'}}
> + at protocol PROTO4 <p1, p2, PROTO, PROTO3, p3>
> + at end
> +
> +
> +// rdar://6771034
> + at protocol XX;
> + at protocol YY <XX>  // Use of declaration of XX here should not cause a
> warning.
> +- zz;
>  @end
>
> Modified: cfe/trunk/test/SemaObjC/protocol-undef.m
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/protocol-undef.m?rev=68894&r1=68893&r2=68894&view=diff
>
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/protocol-undef.m (original)
> +++ cfe/trunk/test/SemaObjC/protocol-undef.m Sun Apr 12 03:43:13 2009
> @@ -21,8 +21,8 @@
>  - (BOOL)anchor:(OzzyAnchor *)anchor
> confirmRepresentedObject:(id)newObject;
>  @end
>  typedef NSObject <OzzyAnchorDelegateP> OzzyAnchorDelegate;
> -// GCC doesn't warn about the following (which is inconsistent with it's
> handling of @interface below).
> - at protocol OzzyAnchorP <OzzyP> // expected-warning{{cannot find protocol
> definition for 'OzzyP'}}
> +
> + at protocol OzzyAnchorP <OzzyP>
>   @property(nonatomic,retain) id representedObject;
>   @property(nonatomic,retain) Ozzy * contentGroup;
>  @end
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20090413/fc3073f1/attachment.html>


More information about the cfe-commits mailing list