/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { 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;
	  }
      }
}
