/* { dg-add-options stack_size } */ void abort (void); void exit (int); struct parsefile { long fd; char *buf; }; struct parsefile basepf; struct parsefile *parsefile = &basepf; #ifdef STACK_SIZE int filler[STACK_SIZE / (2*sizeof(int))]; #else int filler[0x3000]; #endif int el; char * g1 (a, b) int a; int *b; { } int g2 (a) long a; { if (a != 0xdeadbeefL) abort (); exit (0); } void f (void) { register char *p, *q; register int i; register int something; if (parsefile->fd == 0L && el) { const char *rl_cp; int len; rl_cp = g1 (el, &len); __builtin_strcpy (p, rl_cp); } else { alabel: i = g2 (parsefile->fd); } } int main (void) { el = 0; parsefile->fd = 0xdeadbeefL; f (); }