summaryrefslogtreecommitdiff
path: root/gcc/testsuite/objc.dg/type-size-5.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/objc.dg/type-size-5.m')
-rw-r--r--gcc/testsuite/objc.dg/type-size-5.m22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/type-size-5.m b/gcc/testsuite/objc.dg/type-size-5.m
new file mode 100644
index 000000000..d89af32b4
--- /dev/null
+++ b/gcc/testsuite/objc.dg/type-size-5.m
@@ -0,0 +1,22 @@
+/* Reject ivars that use flexible array members. */
+/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com> */
+/* { dg-do compile } */
+
+typedef struct
+{
+ unsigned long int a;
+ double b[];
+} test_type;
+
+@interface Test
+{
+ double a[]; /* { dg-error "instance variable .a. has unknown size" } */
+ struct { int x; double y[]; } b; /* { dg-error "instance variable .b. uses flexible array member" } */
+ test_type c; /* { dg-error "instance variable .c. uses flexible array member" } */
+ test_type d[4]; /* { dg-error "instance variable .d. uses flexible array member" } */
+ union union_type { int x; test_type y; } e; /* { dg-error "instance variable .e. uses flexible array member" } */
+}
+@end
+
+@implementation Test
+@end