diff options
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c | 22 |
2 files changed, 19 insertions, 8 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6393589..a896736 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2002-02-04 Richard Henderson <rth@redhat.com> + + * gcc.c-torture/execute/built-in-setjmp.c: Prototype stuff. + (buf): Change to be an array of pointers, not ints. + 2002-02-04 Jakub Jelinek <jakub@redhat.com> * gcc.dg/Wswitch.c: Fix typos. Don't return unconditionally diff --git a/gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c b/gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c index b63c4ea..9da7878 100644 --- a/gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c +++ b/gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c @@ -1,9 +1,20 @@ -int buf[20]; +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 *) alloca (20); + char *p = (char *) __builtin_alloca (20); strcpy (p, "test"); @@ -16,7 +27,7 @@ main () } { - int *q = (int *) alloca (p[2] * sizeof (int)); + int *q = (int *) __builtin_alloca (p[2] * sizeof (int)); int i; for (i = 0; i < p[2]; i++) @@ -26,8 +37,3 @@ main () sub2 (); } } - -sub2 () -{ - __builtin_longjmp (buf, 1); -} |
