diff options
Diffstat (limited to 'sysdeps/hppa/__longjmp.c')
-rw-r--r-- | sysdeps/hppa/__longjmp.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/hppa/__longjmp.c b/sysdeps/hppa/__longjmp.c index bc14a51c0f..a90678d55f 100644 --- a/sysdeps/hppa/__longjmp.c +++ b/sysdeps/hppa/__longjmp.c @@ -1,5 +1,5 @@ /* longjmp for PA-RISC. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,15 +24,15 @@ void __longjmp (__jmp_buf env, int val) { +#ifdef CHECK_SP + CHECK_SP (env[0].__jmp_buf.__sp); +#endif + /* We must use one of the non-callee saves registers for env. */ register unsigned long r26 asm ("r26") = (unsigned long)&env[0]; register unsigned long r25 asm ("r25") = (unsigned long)(val == 0 ? 1 : val); -#ifdef CHECK_SP - CHECK_SP (env[0].__jmp_buf.__sp); -#endif - asm volatile( /* Set return value. */ "copy %0, %%r28\n\t" @@ -79,6 +79,7 @@ __longjmp (__jmp_buf env, int val) : /* No outputs. */ : "r" (r25), "r" (r26) : /* No point in clobbers. */ ); + /* Avoid `volatile function does return' warnings. */ for (;;); } |