summaryrefslogtreecommitdiff
path: root/gcc/testsuite/objc.dg/objc-foreach-4.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/objc.dg/objc-foreach-4.m')
-rw-r--r--gcc/testsuite/objc.dg/objc-foreach-4.m26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/objc-foreach-4.m b/gcc/testsuite/objc.dg/objc-foreach-4.m
new file mode 100644
index 000000000..292a90885
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-foreach-4.m
@@ -0,0 +1,26 @@
+/* Test for valid objc objects used in a for-each statement. */
+/* FIXME: Run this test with the GNU runtime as well. */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
+/* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
+
+#include <objc/objc-api.h>
+#include <Foundation/Foundation.h>
+
+#if defined (__NEXT_RUNTIME__) && defined (__LP64__)
+/* Fudge the class reference until we implement the compiler-side
+ const strings. */
+extern void *_NSConstantStringClassReference;
+#endif
+
+// gcc -o foo foo.m -framework Foundation
+
+int main (int argc, char const* argv[]) {
+ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+ NSArray * arr = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
+ for (NSString * foo in arr) {
+ NSLog(@"foo is %@", foo);
+ }
+ [pool release];
+ return 0;
+}