5 #include <objc/objc-runtime.h>
6 #include <objc/objc-auto.h>
10 // Make sure @selector values are correctly fixed up
11 testassert(@selector(foo) == sel_registerName("foo"));
13 // sel_getName recognizes the zero SEL
14 testassert(0 == strcmp("<null selector>", sel_getName(0)));
16 // GC-ignored selectors.
17 #if __has_feature(objc_arc)
19 // ARC dislikes `@selector(retain)`
23 # if defined(__i386__)
24 // sel_getName recognizes GC-ignored SELs
25 if (objc_collectingEnabled()) {
26 testassert(0 == strcmp("<ignored selector>",
27 sel_getName(@selector(retain))));
29 testassert(0 == strcmp("retain",
30 sel_getName(@selector(retain))));
33 // _objc_search_builtins() shouldn't crash on GC-ignored SELs
38 u.sel = @selector(retain);
39 testassert(@selector(retain) == sel_registerName(u.ptr));