aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/objc.dg/method-1.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/objc.dg/method-1.m')
-rw-r--r--gcc/testsuite/objc.dg/method-1.m34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/method-1.m b/gcc/testsuite/objc.dg/method-1.m
new file mode 100644
index 0000000..acc03c6
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-1.m
@@ -0,0 +1,34 @@
+/* Tests of duplication. */
+/* { dg-do compile } */
+
+@interface class1
+- (int) meth1;
+- (void) meth1; /* { dg-error "duplicate declaration of instance method" } */
+@end
+
+@interface class2
++ (void) meth1;
++ (int) meth1; /* { dg-error "duplicate declaration of class method" } */
+@end
+
+@interface class3
+- (int) meth1;
+@end
+
+@implementation class3
+- (int) meth1 {}
+- (int) meth1 {} /* { dg-error "duplicate definition of instance method" } */
+/* { dg-error "redefinition of" "" { target *-*-* } 20 } */
+/* { dg-error "previously defined here" "" { target *-*-* } 19 } */
+@end
+
+@interface class4
++ (void) meth1;
+@end
+
+@implementation class4
++ (void) meth1 {}
++ (void) meth1 {} /* { dg-error "duplicate definition of class method" } */
+/* { dg-error "redefinition of" "" { target *-*-* } 31 } */
+/* { dg-error "previously defined here" "" { target *-*-* } 30 } */
+@end