From 88a581daa7f2c350e061b12db8ed24a0417a6058 Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Mon, 22 Apr 2013 14:26:51 +0000 Subject: re PR target/57018 (Miscompilation of bison 2.7.1 under "-Os -fomit-frame-pointer") 2013-04-22 Vladimir Makarov PR target/57018 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of a set sp if no stack realignment. 2013-04-22 Vladimir Makarov PR target/57018 * gcc.target/i386/pr57018.c: New test. From-SVN: r198140 --- gcc/lra-eliminations.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/lra-eliminations.c') diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index b8ec69f..27a5d75 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -716,7 +716,9 @@ mark_not_eliminable (rtx x) ep++) if (ep->to_rtx == SET_DEST (x) && SET_DEST (x) != hard_frame_pointer_rtx - && (GET_CODE (SET_SRC (x)) != PLUS + && (! (SUPPORTS_STACK_ALIGNMENT && stack_realign_fp + && REGNO (ep->to_rtx) == STACK_POINTER_REGNUM) + || GET_CODE (SET_SRC (x)) != PLUS || XEXP (SET_SRC (x), 0) != SET_DEST (x) || ! CONST_INT_P (XEXP (SET_SRC (x), 1)))) setup_can_eliminate (ep, false); -- cgit v1.1