* include/grub/setjmp.h: Define RETURNS_TWICE. Keep it empty for
gcc < 4.0. * include/grub/*/setjmp.h: USe RETURNS_TWICE.
This commit is contained in:
parent
757e3eb7c3
commit
0d3a6f8540
9 changed files with 22 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
|||
2013-10-18 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* include/grub/setjmp.h: Define RETURNS_TWICE. Keep it empty for
|
||||
gcc < 4.0.
|
||||
* include/grub/*/setjmp.h: USe RETURNS_TWICE.
|
||||
|
||||
2013-10-18 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/disk/dmraid_nvidia.c: Fix potentially uninited "layout".
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
typedef unsigned long grub_jmp_buf[10];
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice));
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));
|
||||
|
||||
#endif /* ! GRUB_SETJMP_CPU_HEADER */
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
typedef unsigned long grub_jmp_buf[6];
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice, cdecl,
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE __attribute__ ((cdecl,
|
||||
regparm (3)));
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn, cdecl,
|
||||
regparm (3)));
|
||||
|
|
|
@ -24,5 +24,5 @@
|
|||
/* the __jmp_buf element type should be __float80 per ABI... */
|
||||
typedef long grub_jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice));
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
typedef unsigned long grub_jmp_buf[11];
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice));
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));
|
||||
|
||||
#endif /* ! GRUB_SETJMP_CPU_HEADER */
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
typedef unsigned long grub_jmp_buf[20];
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice));
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));
|
||||
|
||||
#endif /* ! GRUB_SETJMP_CPU_HEADER */
|
||||
|
|
|
@ -25,6 +25,15 @@ typedef jmp_buf grub_jmp_buf;
|
|||
#define grub_setjmp setjmp
|
||||
#define grub_longjmp longjmp
|
||||
#else
|
||||
|
||||
#include <grub/misc.h>
|
||||
|
||||
#if GNUC_PREREQ(4,0)
|
||||
#define RETURNS_TWICE __attribute__ ((returns_twice))
|
||||
#else
|
||||
#define RETURNS_TWICE
|
||||
#endif
|
||||
|
||||
/* This must define grub_jmp_buf, and declare grub_setjmp and
|
||||
grub_longjmp. */
|
||||
# include <grub/cpu/setjmp.h>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
typedef grub_uint64_t grub_jmp_buf[3];
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice));
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));
|
||||
|
||||
#endif /* ! GRUB_SETJMP_CPU_HEADER */
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
typedef unsigned long grub_jmp_buf[8];
|
||||
|
||||
int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice));
|
||||
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
|
||||
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));
|
||||
|
||||
#endif /* ! GRUB_SETJMP_CPU_HEADER */
|
||||
|
|
Loading…
Reference in a new issue