OLD | NEW |
1 /* Crash due to descriptionFor(Instance|Class)Method applied to | 1 /* Crash due to descriptionFor(Instance|Class)Method applied to |
2 a protocol with no instance/class methods respectively. | 2 a protocol with no instance/class methods respectively. |
3 Problem report and original fix by richard@brainstorm.co.uk. */ | 3 Problem report and original fix by richard@brainstorm.co.uk. */ |
4 /* { dg-do run } */ | 4 /* { dg-do run } */ |
| 5 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } }
} { "-fnext-runtime" } { "" } } */ |
| 6 #include "../objc-obj-c++-shared/Protocol1.h" |
| 7 #include "../objc-obj-c++-shared/Object1.h" |
5 #include <objc/objc.h> | 8 #include <objc/objc.h> |
6 #include <objc/Object.h> | |
7 #include <objc/Protocol.h> | |
8 | 9 |
9 @protocol NoInstanceMethods | 10 @protocol NoInstanceMethods |
10 + testMethod; | 11 + testMethod; |
11 @end | 12 @end |
12 | 13 |
13 @protocol NoClassMethods | 14 @protocol NoClassMethods |
14 - testMethod; | 15 - testMethod; |
15 @end | 16 @end |
16 | 17 |
17 int | 18 int |
18 main() | 19 main() |
19 { | 20 { |
20 [@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)]; | 21 [@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)]; |
21 [@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)]; | 22 [@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)]; |
22 [@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)]; | 23 [@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)]; |
23 [@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)]; | 24 [@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)]; |
24 return 0; | 25 return 0; |
25 } | 26 } |
OLD | NEW |