From: Kai Tietz Date: Tue, 25 Oct 2011 07:32:31 +0000 (+0200) Subject: i386.c (ix86_frame_pointer_required): Require frame-pointer, if setjmp is used for... X-Git-Tag: releases/gcc-4.7.0~2839 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db8543789305f6d56005bba91f784831d3745970;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a49628d5641f..c5235bf37ffd 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 ef1bbd317ce4..e336d5abcd53 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. */