fix built-in-setjmp.c

Richard Henderson rth@redhat.com
Tue Feb 5 00:33:00 GMT 2002


"buf" being the wrong type was causing it to be 
misaligned on alpha.


r~


        * gcc.c-torture/execute/built-in-setjmp.c: Prototype stuff.
        (buf): Change to be an array of pointers, not ints.

Index: built-in-setjmp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c,v
retrieving revision 1.1
diff -c -p -d -r1.1 built-in-setjmp.c
*** built-in-setjmp.c	2001/01/04 19:02:01	1.1
--- built-in-setjmp.c	2002/02/05 06:34:23
***************
*** 1,9 ****
! int buf[20];
  
  int
  main ()
  {
!   char *p = (char *) alloca (20);
  
    strcpy (p, "test");
  
--- 1,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 *) __builtin_alloca (20);
  
    strcpy (p, "test");
  
*************** main ()
*** 16,22 ****
      }
  
    {
!     int *q = (int *) alloca (p[2] * sizeof (int));
      int i;
      
      for (i = 0; i < p[2]; i++)
--- 27,33 ----
      }
  
    {
!     int *q = (int *) __builtin_alloca (p[2] * sizeof (int));
      int i;
      
      for (i = 0; i < p[2]; i++)
*************** main ()
*** 25,33 ****
      while (1)
        sub2 ();
    }
- }
- 
- sub2 ()
- {
-   __builtin_longjmp (buf, 1);
  }
--- 36,39 ----



More information about the Gcc-patches mailing list