diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-03-20 00:32:56 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-03-20 00:32:56 +0000 |
commit | a6457963cf7ffe71498c408dd590d9d1acb9513c (patch) | |
tree | c747c6a2675d10c3dfd9471828811a82386d85e5 /test/Sema/flexible-array-init.c | |
parent | 748d5d655d9df4e9f8b8ae93ecdd24d725cfb1b8 (diff) |
Allow flexible array initializers that are not surrounded by
braces. We now build the appropriate fully-structured initializer list
for such things. Per PR3618, verified that we're getting the right
code generation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67353 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/flexible-array-init.c')
-rw-r--r-- | test/Sema/flexible-array-init.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/test/Sema/flexible-array-init.c b/test/Sema/flexible-array-init.c index fff5fee2af..2b8f40fa5b 100644 --- a/test/Sema/flexible-array-init.c +++ b/test/Sema/flexible-array-init.c @@ -1,24 +1,24 @@ // RUN: clang -fsyntax-only -pedantic -verify %s struct one { int a; - int values[]; -} x = {5, {1, 2, 3}}; + int values[]; // expected-note 3{{initialized flexible array member 'values' is here}} +} x = {5, {1, 2, 3}}; // expected-warning{{flexible array initialization is a GNU extension}} -struct one x2 = { 5, 1, 2, 3 }; // expected-warning{{excess elements in struct initializer}} +struct one x2 = { 5, 1, 2, 3 }; // expected-warning{{flexible array initialization is a GNU extension}} void test() { - struct one x3 = {5, {1, 2, 3}}; + struct one x3 = {5, {1, 2, 3}}; // expected-warning{{flexible array initialization is a GNU extension}} } struct foo { int x; - int y[]; // expected-note 4 {{initialized flexible array member 'y' is here}} + int y[]; // expected-note 6 {{initialized flexible array member 'y' is here}} }; struct bar { struct foo z; }; // expected-warning {{'z' may not be nested in a struct due to flexible array member}} -struct foo a = { 1, { 2, 3, 4 } }; // Valid. +struct foo a = { 1, { 2, 3, 4 } }; // expected-warning{{flexible array initialization is a GNU extension}} struct bar b = { { 1, { 2, 3, 4 } } }; // expected-error{{non-empty initialization of flexible array member inside subobject}} -struct bar c = { { 1, { } } }; // Valid. \ +struct bar c = { { 1, { } } }; // // expected-warning{{flexible array initialization is a GNU extension}} \ // expected-warning{{use of GNU empty initializer extension}} \ // expected-warning{{zero size arrays are an extension}} struct foo d[1] = { { 1, { 2, 3, 4 } } }; // expected-warning{{'struct foo' may not be used as an array element due to flexible array member}} \ |