aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Parse/ParseObjc.cpp2
-rw-r--r--lib/Sema/SemaDeclObjC.cpp2
-rw-r--r--test/Analysis/region-1.m4
-rw-r--r--test/SemaObjC/method-conflict.m2
-rw-r--r--test/SemaObjC/protocol-forward-circular.m2
-rw-r--r--test/SemaObjC/protocol-test-2.m11
-rw-r--r--test/SemaObjC/protocol-undef.m4
7 files changed, 17 insertions, 10 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 239d35f806..b4f417a15d 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -982,7 +982,7 @@ Parser::DeclPtrTy Parser::ParseObjCAtProtocolDeclaration(SourceLocation AtLoc,
llvm::SmallVector<DeclPtrTy, 8> ProtocolRefs;
if (Tok.is(tok::less) &&
- ParseObjCProtocolReferences(ProtocolRefs, true, EndProtoLoc))
+ ParseObjCProtocolReferences(ProtocolRefs, false, EndProtoLoc))
return DeclPtrTy();
DeclPtrTy ProtoType =
diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp
index 90a6bee819..49433b5b7b 100644
--- a/lib/Sema/SemaDeclObjC.cpp
+++ b/lib/Sema/SemaDeclObjC.cpp
@@ -503,7 +503,7 @@ void Sema::DiagnoseClassExtensionDupMethods(ObjCCategoryDecl *CAT,
}
}
-/// ActOnForwardProtocolDeclaration -
+/// ActOnForwardProtocolDeclaration - Handle @protocol foo;
Action::DeclPtrTy
Sema::ActOnForwardProtocolDeclaration(SourceLocation AtProtocolLoc,
const IdentifierLocPair *IdentList,
diff --git a/test/Analysis/region-1.m b/test/Analysis/region-1.m
index f9905079eb..ed172e431e 100644
--- a/test/Analysis/region-1.m
+++ b/test/Analysis/region-1.m
@@ -19,14 +19,14 @@ typedef unsigned int NSUInteger;
@end @class NSAttributedString, NSEvent, NSFont, NSFormatter, NSImage, NSMenu, NSText, NSView;
@class JabasectItem;
@protocol EcoClassifier;
-@protocol EcoClassInterfaceCommons <EcoClassifier> @end @protocol EcoImplementation; // expected-warning{{cannot find protocol}}
+@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;
-@protocol EcoClassifier <EcoNamespace,EcoType> - (NSArray *) features; // expected-warning 2 {{cannot find protocol}}
+@protocol EcoClassifier <EcoNamespace,EcoType> - (NSArray *) features;
@end @protocol EcoComment;
@protocol EcoElement <NSObject> - (NSArray *) ownedElements;
@end @protocol EcoDirectedRelationship;
diff --git a/test/SemaObjC/method-conflict.m b/test/SemaObjC/method-conflict.m
index 957cde3c26..1524fbae56 100644
--- a/test/SemaObjC/method-conflict.m
+++ b/test/SemaObjC/method-conflict.m
@@ -25,7 +25,7 @@ typedef struct _NSRange {
}
CSSM_FIELDGROUP, *CSSM_FIELDGROUP_PTR;
@protocol XDUMLClassifier;
-@protocol XDUMLClassInterfaceCommons <XDUMLClassifier> // expected-warning {{cannot find protocol definition for 'XDUMLClassifier'}}
+@protocol XDUMLClassInterfaceCommons <XDUMLClassifier>
@end @protocol XDUMLImplementation;
@protocol XDUMLElement <NSObject> - (NSArray *) ownedElements;
@end @protocol XDUMLDataType;
diff --git a/test/SemaObjC/protocol-forward-circular.m b/test/SemaObjC/protocol-forward-circular.m
index 40da96e096..804c44f6bf 100644
--- a/test/SemaObjC/protocol-forward-circular.m
+++ b/test/SemaObjC/protocol-forward-circular.m
@@ -1,7 +1,7 @@
// RUN: clang-cc -fsyntax-only -verify %s
@protocol B;
-@protocol C < B > // expected-warning{{cannot find protocol definition for 'B'}} // expected-note{{previous definition is here}}
+@protocol C < B > // expected-note{{previous definition is here}}
@end
@protocol A < C >
@end
diff --git a/test/SemaObjC/protocol-test-2.m b/test/SemaObjC/protocol-test-2.m
index 3abb9b5935..265e5d2691 100644
--- a/test/SemaObjC/protocol-test-2.m
+++ b/test/SemaObjC/protocol-test-2.m
@@ -10,7 +10,7 @@
- (INTF1<p1>*) meth;
@end
-@protocol PROTO2<p1> // expected-warning {{cannot find protocol definition for 'p1'}}
+@protocol PROTO2<p1>
@end
@protocol p1 @end
@@ -27,5 +27,12 @@
@protocol p2 <p1>
@end
-@protocol PROTO4 <p1, p2, PROTO, PROTO3, p3> // expected-warning {{cannot find protocol definition for 'p3'}}
+@protocol PROTO4 <p1, p2, PROTO, PROTO3, p3>
+@end
+
+
+// rdar://6771034
+@protocol XX;
+@protocol YY <XX> // Use of declaration of XX here should not cause a warning.
+- zz;
@end
diff --git a/test/SemaObjC/protocol-undef.m b/test/SemaObjC/protocol-undef.m
index 34a33c72f8..6f3350c9e3 100644
--- a/test/SemaObjC/protocol-undef.m
+++ b/test/SemaObjC/protocol-undef.m
@@ -21,8 +21,8 @@ typedef NSObject <OzzyAnchorP> OzzyAnchor;
- (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).
-@protocol OzzyAnchorP <OzzyP> // expected-warning{{cannot find protocol definition for 'OzzyP'}}
+
+@protocol OzzyAnchorP <OzzyP>
@property(nonatomic,retain) id representedObject;
@property(nonatomic,retain) Ozzy * contentGroup;
@end