/* { 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;
	  }
      }
}
