summaryrefslogtreecommitdiff
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.m30
1 files changed, 30 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 000000000..194c64fac
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-1.m
@@ -0,0 +1,30 @@
+/* Tests of duplication. */
+/* { dg-do compile } */
+
+@interface class1
+- (int) meth1; /* { dg-message "previous declaration" } */
+- (void) meth1; /* { dg-error "duplicate declaration of method .\\-meth1." } */
+@end
+
+@interface class2
++ (void) meth1; /* { dg-message "previous declaration" } */
++ (int) meth1; /* { dg-error "duplicate declaration of method .\\+meth1." } */
+@end
+
+@interface class3
+- (int) meth1;
+@end
+
+@implementation class3
+- (int) meth1 { return 0; } /* { dg-message "previous definition" } */
+- (int) meth1 { return 0; } /* { dg-error "redefinition of" } */
+@end
+
+@interface class4
++ (void) meth1;
+@end
+
+@implementation class4
++ (void) meth1 {} /* { dg-message "previous definition" } */
++ (void) meth1 {} /* { dg-error "redefinition of" } */
+@end