diff options
Diffstat (limited to 'gcc/testsuite/objc.dg/duplicate-class-1.m')
-rw-r--r-- | gcc/testsuite/objc.dg/duplicate-class-1.m | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/duplicate-class-1.m b/gcc/testsuite/objc.dg/duplicate-class-1.m new file mode 100644 index 000000000..f86159211 --- /dev/null +++ b/gcc/testsuite/objc.dg/duplicate-class-1.m @@ -0,0 +1,31 @@ +/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010. */ +/* { dg-do compile } */ + +/* Test that a duplicated @implementation for the same class does not + crash the compiler. */ + +@interface Test +{ + Class isa; +} +- (int) test; +@end + +@implementation Test +- (int) test +{ + return 4; +} +@end + +/* The most likely cause is that the programmer meant this to be a + category, so check what happens if we have some different methods + in there. */ +@implementation Test +- (int) test2 /* { dg-error "reimplementation of class .Test." } */ +{ + return [self test]; +} +@end +/* { dg-warning "incomplete implementation" "" { target *-*-* } 29 } */ +/* { dg-warning "not found" "" { target *-*-* } 29 } */ |