mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
![Clement Courbet](/assets/img/avatar_default.png)
Declaring setjmp()/longjmp() as taking longs makes the signature
non-standard, and makes clang complain. In the past, this has been
worked around by adding -ffreestanding to the compile flags.
The implementation looks like it only ever propagates the value
(in longjmp) or sets it to 1 (in setjmp), and we only call longjmp
with integer parameters.
This allows removing -ffreestanding from the compilation flags.
Fixes: c9029ef9c9
("powerpc: Avoid clang warnings around setjmp and longjmp")
Cc: stable@vger.kernel.org # v4.14+
Signed-off-by: Clement Courbet <courbet@google.com>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200330080400.124803-1-courbet@google.com
15 lines
400 B
C
15 lines
400 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright © 2008 Michael Neuling IBM Corporation
|
|
*/
|
|
#ifndef _ASM_POWERPC_SETJMP_H
|
|
#define _ASM_POWERPC_SETJMP_H
|
|
|
|
#define JMP_BUF_LEN 23
|
|
|
|
typedef long jmp_buf[JMP_BUF_LEN];
|
|
|
|
extern int setjmp(jmp_buf env) __attribute__((returns_twice));
|
|
extern void longjmp(jmp_buf env, int val) __attribute__((noreturn));
|
|
|
|
#endif /* _ASM_POWERPC_SETJMP_H */
|