diff --git a/clang/test/SemaObjC/selector-1.m b/clang/test/SemaObjC/selector-1.m index 69a74f830ce5..16d44cbb5515 100644 --- a/clang/test/SemaObjC/selector-1.m +++ b/clang/test/SemaObjC/selector-1.m @@ -1,29 +1,28 @@ -// RUN: %clang_cc1 -fsyntax-only -Wselector -verify %s -// rdar://8851684 - -@interface Foo -- (void) foo; -- (void) bar; -@end - -@implementation Foo -- (void) bar -{ -} - -- (void) foo -{ - SEL a,b,c; - a = @selector(b1ar); // expected-warning {{unimplemented selector 'b1ar'}} - b = @selector(bar); -} -@end +// RUN: %clang_cc1 -verify %s @interface I +- (id) compare: (char) arg1; - length; @end +@interface J +- (id) compare: (id) arg1; +@end + SEL func() { - return @selector(length); // expected-warning {{unimplemented selector 'length'}} + return @selector(compare:); // Non warning on multiple selector found. +} + +int main() { + SEL s = @selector(retain); + SEL s1 = @selector(meth1:); + SEL s2 = @selector(retainArgument::); + SEL s3 = @selector(retainArgument:::::); + SEL s4 = @selector(retainArgument:with:); + SEL s5 = @selector(meth1:with:with:); + SEL s6 = @selector(getEnum:enum:bool:); + SEL s7 = @selector(char:float:double:unsigned:short:long:); + + SEL s9 = @selector(:enum:bool:); } diff --git a/clang/test/SemaObjC/selector-3.m b/clang/test/SemaObjC/selector-3.m new file mode 100644 index 000000000000..69a74f830ce5 --- /dev/null +++ b/clang/test/SemaObjC/selector-3.m @@ -0,0 +1,29 @@ +// RUN: %clang_cc1 -fsyntax-only -Wselector -verify %s +// rdar://8851684 + +@interface Foo +- (void) foo; +- (void) bar; +@end + +@implementation Foo +- (void) bar +{ +} + +- (void) foo +{ + SEL a,b,c; + a = @selector(b1ar); // expected-warning {{unimplemented selector 'b1ar'}} + b = @selector(bar); +} +@end + +@interface I +- length; +@end + +SEL func() +{ + return @selector(length); // expected-warning {{unimplemented selector 'length'}} +}