summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/20010924-1.c
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-24 20:17:45 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-24 20:17:45 +0000
commit768be674db6d1ac130eb08b5fa56db0baba8df79 (patch)
treec56ca804a105157671a88ab9fdebb1e37b955b4c /gcc/testsuite/gcc.c-torture/execute/20010924-1.c
parent0de616acaf5a5c030aa345f35f272041482a1651 (diff)
downloadgcc-768be674db6d1ac130eb08b5fa56db0baba8df79.tar.gz
* gcc.c-torture/execute/20010924-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45784 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/20010924-1.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20010924-1.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010924-1.c b/gcc/testsuite/gcc.c-torture/execute/20010924-1.c
new file mode 100644
index 00000000000..247f51ce64c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20010924-1.c
@@ -0,0 +1,71 @@
+/* Verify that flexible arrays can be initialized from STRING_CST
+ constructors. */
+
+/* Baselines. */
+struct {
+ char a1c;
+ char *a1p;
+} a1 = {
+ '4',
+ "62"
+};
+
+struct {
+ char a2c;
+ char a2p[2];
+} a2 = {
+ 'v',
+ "cq"
+};
+
+/* The tests. */
+struct {
+ char a3c;
+ char a3p[];
+} a3 = {
+ 'o',
+ "wx"
+};
+
+struct {
+ char a4c;
+ char a4p[];
+} a4 = {
+ '9',
+ { 'e', 'b' }
+};
+
+main()
+{
+ if (a1.a1c != '4')
+ abort();
+ if (a1.a1p[0] != '6')
+ abort();
+ if (a1.a1p[1] != '2')
+ abort();
+ if (a1.a1p[2] != '\0')
+ abort();
+
+ if (a2.a2c != 'v')
+ abort();
+ if (a2.a2p[0] != 'c')
+ abort();
+ if (a2.a2p[1] != 'q')
+ abort();
+
+ if (a3.a3c != 'o')
+ abort();
+ if (a3.a3p[0] != 'w')
+ abort();
+ if (a3.a3p[1] != 'x')
+ abort();
+
+ if (a4.a4c != '9')
+ abort();
+ if (a4.a4p[0] != 'e')
+ abort();
+ if (a4.a4p[1] != 'b')
+ abort();
+
+ return 0;
+}