diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/desig-init-1.m | 40 |
2 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b25b0ef..014eacb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2002-07-02 Ziemowit Laski <zlaski@apple.com> + + * objc.dg/desig-init-1.m: New test. + 2002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> PR c++/6716 diff --git a/gcc/testsuite/objc.dg/desig-init-1.m b/gcc/testsuite/objc.dg/desig-init-1.m new file mode 100644 index 0000000..72fe833 --- /dev/null +++ b/gcc/testsuite/objc.dg/desig-init-1.m @@ -0,0 +1,40 @@ +/* Test Objective-C capability for handling GNU/C99 designated + initializers, and distinguishing them from message sends. */ +/* Contributed by Ziemowit Laski <zlaski@apple.com>. */ +/* { dg-options "-std=gnu99" } */ +/* { dg-do run } */ + +#include <stdio.h> +#include <objc/objc.h> +#include <objc/Object.h> + +@interface Cls : Object ++ (int) meth1; ++ (int) meth2; ++ (void) doTests; +@end + +@implementation Cls ++ (int) meth1 { return 45; } ++ (int) meth2 { return 21; } ++ (void) doTests { + int arr[6] = { + 0, + [Cls meth1], + [2 + 1] = 3, + [2 * 2 ... 5] = [0 meth2], /* { dg-warning "invalid receiver type" } */ + [2] [Cls meth2] + }; + + if (arr[0] != 0 || arr[1] != 45 || arr[2] != 21 || arr[3] != 3) + abort (); /* { dg-warning "implicit declaration" } */ + + printf ("%s\n", [super name]); + printf ("%d %d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]); +} +@end + +int main(void) { + [Cls doTests]; + return 0; +} |