OSDN Git Service

* gcc.c-torture/execute/20030224-2.c: New test.
authordrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Mar 2003 16:47:07 +0000 (16:47 +0000)
committerdrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Mar 2003 16:47:07 +0000 (16:47 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64251 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 7340556..4c34daa 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;
+}