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/class-protocol-method-match.m | 48 +++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 clang/test/SemaObjC/class-protocol-method-match.m (limited to 'clang/test/SemaObjC/class-protocol-method-match.m') diff --git a/clang/test/SemaObjC/class-protocol-method-match.m b/clang/test/SemaObjC/class-protocol-method-match.m new file mode 100644 index 0000000..7c936e6 --- /dev/null +++ b/clang/test/SemaObjC/class-protocol-method-match.m @@ -0,0 +1,48 @@ +// RUN: %clang_cc1 -Woverriding-method-mismatch -fsyntax-only -verify -Wno-objc-root-class %s +// rdar://9352731 + +@protocol Bar +@required +- (bycopy id)bud; // expected-note {{previous declaration is here}} +- (unsigned char) baz; // expected-note {{previous declaration is here}} +- (char) ok; +- (void) also_ok; +@end + +@protocol Bar1 +@required +- (unsigned char) baz; // expected-note {{previous declaration is here}} +- (unsigned char) also_ok; // expected-note {{previous declaration is here}} +- (void) ban : (int) arg, ...; // expected-note {{previous declaration is here}} +@end + +@protocol Baz +- (void) bar : (unsigned char)arg; // expected-note {{previous declaration is here}} +- (void) ok; +- (char) bak; // expected-note {{previous declaration is here}} +@end + +@interface Foo +- (id)bud; // expected-warning {{conflicting distributed object modifiers on return type in declaration of 'bud'}} +- (void) baz; // expected-warning 2 {{conflicting return type in declaration of 'baz': 'unsigned char' vs 'void'}} +- (void) bar : (unsigned char*)arg; // expected-warning {{conflicting parameter types in declaration of 'bar:': 'unsigned char' vs 'unsigned char *'}} +- (void) ok; +- (void) also_ok; // expected-warning {{conflicting return type in declaration of 'also_ok': 'unsigned char' vs 'void'}} +- (void) still_ok; +- (void) ban : (int) arg; // expected-warning {{conflicting variadic declaration of method and its implementation}} +@end + +@interface Foo() +- (void) bak; +@end + +@implementation Foo +- (bycopy id)bud { return 0; } +- (void) baz {} +- (void) bar : (unsigned char*)arg {} +- (void) ok {} +- (void) also_ok {} +- (void) still_ok {} +- (void) ban : (int) arg {} +- (void) bak {} // expected-warning {{conflicting return type in declaration of 'bak': 'char' vs 'void'}} +@end -- cgit v1.2.3