From db8543789305f6d56005bba91f784831d3745970 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Tue, 25 Oct 2011 09:32:31 +0200 Subject: [PATCH] i386.c (ix86_frame_pointer_required): Require frame-pointer, if setjmp is used for 32-bit ms-abi. * config/i386/i386.c (ix86_frame_pointer_required): Require frame-pointer, if setjmp is used for 32-bit ms-abi. From-SVN: r180423 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a49628d5641..c5235bf37ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-10-25 Kai Tietz + + * config/i386/i386.c (ix86_frame_pointer_required): Require + frame-pointer, if setjmp is used for 32-bit ms-abi. + 2011-10-24 Michael Meissner * builtins.c (set_builtin_user_assembler_name): Remove extra diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index ef1bbd317ce..e336d5abcd5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -8390,6 +8390,10 @@ ix86_frame_pointer_required (void) if (SUBTARGET_FRAME_POINTER_REQUIRED) return true; + /* For older 32-bit runtimes setjmp requires valid frame-pointer. */ + if (TARGET_32BIT_MS_ABI && cfun->calls_setjmp) + return true; + /* In ix86_option_override_internal, TARGET_OMIT_LEAF_FRAME_POINTER turns off the frame pointer by default. Turn it back on now if we've not got a leaf function. */ -- 2.30.2