summaryrefslogtreecommitdiff
path: root/gcc/testsuite/objc.dg/proto-lossage-7.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/objc.dg/proto-lossage-7.m')
-rw-r--r--gcc/testsuite/objc.dg/proto-lossage-7.m28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/proto-lossage-7.m b/gcc/testsuite/objc.dg/proto-lossage-7.m
new file mode 100644
index 000000000..b7746d7a1
--- /dev/null
+++ b/gcc/testsuite/objc.dg/proto-lossage-7.m
@@ -0,0 +1,28 @@
+/* Check that typedefs of ObjC classes preserve
+ any @protocol qualifiers. */
+/* { dg-do compile } */
+#include <objc/Object.h>
+
+@protocol CanDoStuff;
+
+typedef Object<CanDoStuff> CanDoStuffType;
+typedef Object<CanDoStuff> *CanDoStuffTypePtr;
+
+@protocol CanDoStuff
+- (int) dostuff;
+@end
+
+@protocol MoreStuff
+- (int) morestuff;
+@end
+
+int main(void)
+{
+ CanDoStuffTypePtr dice = nil;
+ CanDoStuffType *nodice = nil;
+ int count;
+ count = [dice dostuff];
+ count = [nodice dostuff];
+ return 0;
+}
+