diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-01 23:29:59 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-01 23:29:59 +0000 |
commit | c34d298cb3d741391b5c810c8999b7e0d11fa141 (patch) | |
tree | 13d311306a2e450cead72959b52908f3a1874875 /gcc/testsuite/objc.dg | |
parent | 1a821ba124bfc62da58f60895bfe098e8bc6262f (diff) | |
download | gcc-c34d298cb3d741391b5c810c8999b7e0d11fa141.tar.gz |
PR 11433
gcc/testsuite:
* objc.dg/proto-lossage-3.m: New test.
libobjc:
* Protocol.m (descriptionForInstanceMethod): Don't dereference
instance_methods if it's NULL.
(descriptionForClassMethod): Likewise for class_methods.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74137 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/objc.dg')
-rw-r--r-- | gcc/testsuite/objc.dg/proto-lossage-3.m | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/proto-lossage-3.m b/gcc/testsuite/objc.dg/proto-lossage-3.m new file mode 100644 index 00000000000..512a59ee6dc --- /dev/null +++ b/gcc/testsuite/objc.dg/proto-lossage-3.m @@ -0,0 +1,25 @@ +/* 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; +} |