+++ /dev/null
-extern int strcmp(const char *, const char *);
-extern char *strcpy(char *, const char *);
-extern void abort(void);
-extern void exit(int);
-
-void *buf[20];
-
-void __attribute__((noinline))
-sub2 (void)
-{
- __builtin_longjmp (buf, 1);
-}
-
-int
-main ()
-{
- char *p = (char *) __builtin_alloca (20);
-
- strcpy (p, "test");
-
- if (__builtin_setjmp (buf))
- {
- if (strcmp (p, "test") != 0)
- abort ();
-
- exit (0);
- }
-
- {
- int *q = (int *) __builtin_alloca (p[2] * sizeof (int));
- int i;
-
- for (i = 0; i < p[2]; i++)
- q[i] = 0;
-
- while (1)
- sub2 ();
- }
-}