1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -Wno-unused-value %s 2*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -fsyntax-only -verify -Wcast-of-sel-type -Wno-unused-value %s 3*67e74705SXin Li// rdar://12107381 4*67e74705SXin Li 5*67e74705SXin LiSEL s; 6*67e74705SXin Li 7*67e74705SXin LiSEL sel_registerName(const char *); 8*67e74705SXin Li 9*67e74705SXin Liint main() { 10*67e74705SXin Li(char *)s; // expected-warning {{cast of type 'SEL' to 'char *' is deprecated; use sel_getName instead}} 11*67e74705SXin Li(void *)s; // ok 12*67e74705SXin Li(const char *)sel_registerName("foo"); // expected-warning {{cast of type 'SEL' to 'const char *' is deprecated; use sel_getName instead}} 13*67e74705SXin Li 14*67e74705SXin Li(const void *)sel_registerName("foo"); // ok 15*67e74705SXin Li 16*67e74705SXin Li(void) s; // ok 17*67e74705SXin Li 18*67e74705SXin Li(void *const)s; // ok 19*67e74705SXin Li 20*67e74705SXin Li(const void *const)s; // ok 21*67e74705SXin Li 22*67e74705SXin Li// rdar://12859590 23*67e74705SXin Li(SEL)sel_registerName("foo"); // ok 24*67e74705SXin Li} 25