diff options
author | Kai Tietz <ktietz@redhat.com> | 2011-10-25 09:32:31 +0200 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2011-10-25 09:32:31 +0200 |
commit | db8543789305f6d56005bba91f784831d3745970 (patch) | |
tree | 8eece63deed3842ffeb16fbb5f9ce9fdcdedaaca /gcc | |
parent | cbe98a41a52c30e91e678023b870b4b568ec3d42 (diff) | |
download | gcc-db8543789305f6d56005bba91f784831d3745970.zip gcc-db8543789305f6d56005bba91f784831d3745970.tar.gz gcc-db8543789305f6d56005bba91f784831d3745970.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a49628d..c5235bf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-10-25 Kai Tietz <ktietz@redhat.com> + + * 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 <meissner@linux.vnet.ibm.com> * builtins.c (set_builtin_user_assembler_name): Remove extra diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index ef1bbd3..e336d5a 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. */ |