]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.c (ix86_frame_pointer_required): Require frame-pointer, if setjmp is used for...
authorKai Tietz <ktietz@redhat.com>
Tue, 25 Oct 2011 07:32:31 +0000 (09:32 +0200)
committerKai Tietz <ktietz@gcc.gnu.org>
Tue, 25 Oct 2011 07:32:31 +0000 (09:32 +0200)
        * 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
gcc/config/i386/i386.c

index a49628d5641f5944714f29c3c407b1d47ebae76d..c5235bf37ffdc4b1dad74baf2cba15279192e41b 100644 (file)
@@ -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
index ef1bbd317ce42351712b1425ed2fc08610ad0c51..e336d5abcd53cd9a366168c70d3ce678573a66ee 100644 (file)
@@ -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.  */