* gcc.c-torture/execute/20030224-2.c: New test.
authorDaniel Jacobowitz <drow@mvista.com>
Wed, 12 Mar 2003 16:47:07 +0000 (16:47 +0000)
committerDaniel Jacobowitz <drow@gcc.gnu.org>
Wed, 12 Mar 2003 16:47:07 +0000 (16:47 +0000)
From-SVN: r64251

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/20030224-2.c [new file with mode: 0644]

index 73405565b9ccd8b49ae5c8041a1c2bf8b56741d8..4c34daa7fb82ee50cc6b0aa5d568375a50baed4a 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gcc.c-torture/execute/20030224-2.c: New test.
+
 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * gcc.dg/decl-3.c: New test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030224-2.c b/gcc/testsuite/gcc.c-torture/execute/20030224-2.c
new file mode 100644 (file)
index 0000000..5b692fb
--- /dev/null
@@ -0,0 +1,28 @@
+/* Make sure that we don't free any temp stack slots associated with
+   initializing marker before we're finished with them.  */
+
+extern void abort();
+
+typedef struct { short v16; } __attribute__((packed)) jint16_t;
+
+struct node {
+  jint16_t magic;
+  jint16_t nodetype;
+  int totlen;
+} __attribute__((packed));
+
+struct node node, *node_p = &node;
+
+int main()
+{
+  struct node marker = {
+    .magic = (jint16_t) {0x1985},
+    .nodetype = (jint16_t) {0x2003},
+    .totlen = node_p->totlen
+  };
+  if (marker.magic.v16 != 0x1985)
+    abort();
+  if (marker.nodetype.v16 != 0x2003)
+    abort();
+  return 0;
+}