diff --git a/ChangeLog.mips b/ChangeLog.mips index 853f286811..9469b5c576 100644 --- a/ChangeLog.mips +++ b/ChangeLog.mips @@ -1,3 +1,9 @@ +2012-06-14 Joseph Myers + + * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h + (FORCE_FRAME_POINTER): Assign result of alloca to a volatile + variable. + 2012-06-01 Joseph Myers * sysdeps/mips/mips64/n32/s_fma.c: New file. diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h index e51f3295ea..8c024b0241 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h @@ -194,8 +194,9 @@ /* We need to use a frame pointer for the functions in which we adjust $sp around the syscall, or debug information and unwind information will be $sp relative and thus wrong during the syscall. As - of GCC 3.4.3, this is sufficient. */ -#define FORCE_FRAME_POINTER alloca (4) + of GCC 4.7, this is sufficient. */ +#define FORCE_FRAME_POINTER \ + void *volatile __fp_force __attribute__ ((unused)) = alloca (4) #define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\ ({ \