From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- clang/test/SemaObjC/protocols.m | 67 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 clang/test/SemaObjC/protocols.m (limited to 'clang/test/SemaObjC/protocols.m') diff --git a/clang/test/SemaObjC/protocols.m b/clang/test/SemaObjC/protocols.m new file mode 100644 index 0000000..ca38f20 --- /dev/null +++ b/clang/test/SemaObjC/protocols.m @@ -0,0 +1,67 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +@interface INTF1 +@required // expected-error {{directive may only be specified in protocols only}} +- (int) FooBar; +- (int) FooBar1; +- (int) FooBar2; +@optional // expected-error {{directive may only be specified in protocols only}} ++ (int) C; + +- (int)I; +@end + +@protocol p1,p2,p3; + +@protocol p1; + +@protocol PROTO1 +@required +- (int) FooBar; +@optional +- (void) MyMethod1; ++ (int) S; +@end + + +@protocol PROTO2 +@end + +@protocol p1 @end + +@protocol PROTO // expected-note {{previous definition is here}} +@end + +@protocol PROTO // expected-warning {{duplicate protocol definition of 'PROTO'}} +@end + +@protocol PROTO3 +@end + +@protocol p2 +@end + +@protocol PROTO4 +@end + + +// rdar://6771034 +@protocol XX; +@protocol YY // Use of declaration of XX here should not cause a warning. +- zz; +@end + + +// Detect circular dependencies. +@protocol B; +@protocol C < B > // expected-note{{previous definition is here}} +@end +@protocol A < C > +@end +@protocol B < A > // expected-error{{protocol has circular dependency}} +@end + +@protocol P +- (int)test:(int)param, ..; // expected-warning{{type specifier missing}} \ + // expected-error{{expected ';' after method prototype}} +@end -- cgit v1.2.3