diff options
Diffstat (limited to 'gcc/testsuite/obj-c++.dg/proto-lossage-3.mm')
-rw-r--r-- | gcc/testsuite/obj-c++.dg/proto-lossage-3.mm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm new file mode 100644 index 00000000000..47a5609658d --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm @@ -0,0 +1,26 @@ +/* APPLE LOCAL file mainline */ +/* Crash due to descriptionFor(Instance|Class)Method applied to + a protocol with no instance/class methods respectively. + Problem report and original fix by richard@brainstorm.co.uk. */ +/* { dg-do run } */ +#include <objc/objc.h> +#include <objc/Object.h> +#include <objc/Protocol.h> + +@protocol NoInstanceMethods ++ testMethod; +@end + +@protocol NoClassMethods +- testMethod; +@end + +int +main() +{ +[@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)]; +[@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)]; +[@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)]; +[@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)]; +return 0; +} |