aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/objc/compile/20060406-1.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/objc/compile/20060406-1.m')
-rw-r--r--gcc-4.9/gcc/testsuite/objc/compile/20060406-1.m65
1 files changed, 65 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/objc/compile/20060406-1.m b/gcc-4.9/gcc/testsuite/objc/compile/20060406-1.m
new file mode 100644
index 000000000..62148902a
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/objc/compile/20060406-1.m
@@ -0,0 +1,65 @@
+/* This test tests typedefs and protocol qualifiers. */
+
+@protocol O
+- (unsigned)j;
+@end
+
+@interface T
+@end
+
+
+/* First test. */
+typedef T<O> *S;
+
+@interface I
++ (unsigned char)T:(S[2])p
+ v:(S)h;
+@end
+
+@implementation I
++ (unsigned char)T:(S[2])p
+ v:(S)h
+{
+ p[0] = (S) 0;
+ p[1] = (S) 0;
+ return 0;
+}
+@end
+
+
+/* Second test. */
+typedef T<O> S1;
+
+@interface I1
++ (unsigned char)T1:(S1*[2])p
+ v1:(S1*)h;
+@end
+
+@implementation I1
++ (unsigned char)T1:(S1*[2])p
+ v1:(S1*)h
+{
+ p[0] = (S1*) 0;
+ p[1] = (S1*) 0;
+ return 0;
+}
+@end
+
+
+/* Third test. */
+typedef T S2;
+
+@interface I2
++ (unsigned char)T1:(S2<O>*[2])p
+ v1:(S2<O>*)h;
+@end
+
+@implementation I2
++ (unsigned char)T1:(S2<O>*[2])p
+ v1:(S2<O>*)h
+{
+ p[0] = (S2<O>*) 0;
+ p[1] = (S2<O>*) 0;
+ return 0;
+}
+@end