Blob Blame History Raw
2000-08-07  Jakub Jelinek  <jakub@redhat.com>

	* gcc.dg/20000807-1.c: New test.

--- gcc/testsuite/gcc.dg/20000807-1.c.jj	Mon Aug  7 17:22:26 2000
+++ gcc/testsuite/gcc.dg/20000807-1.c	Mon Aug  7 17:23:31 2000
@@ -0,0 +1,37 @@
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-Os -fpic" } */
+
+#include <string.h>
+
+typedef struct
+{
+  char *a;
+  char *b;
+} *foo;
+
+void
+bar (foo x)
+{
+  char *c = x->b;
+  char *d = (void *)0;
+  unsigned int e = 0, f = 0, g;
+  while (*c != ':')
+    if (*c == '%')
+      {
+        ++c;
+        switch (*c++)
+          {
+          case 'N':
+            g = strlen (x->a);
+            if (e + g >= f) {
+		char *h = d;
+		f += 256 + g;
+		d = (char *) __builtin_alloca (f);
+		memcpy (d, h, e);
+	    };
+            memcpy (&d[e], x->a, g);
+            e += g;
+            break;
+	  }
+      }
+}