aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-12-02 21:19:32 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-12-02 21:19:32 +0000
commit14c473b90e3b5f2ef495b961a4f04e1b5ae91e09 (patch)
tree4984f9c40be037592d656abe8bb039a025dd0826 /gcc
parent79d60e57e9be63fde4b11b36155824ea80904260 (diff)
downloadgcc-14c473b90e3b5f2ef495b961a4f04e1b5ae91e09.zip
gcc-14c473b90e3b5f2ef495b961a4f04e1b5ae91e09.tar.gz
gcc-14c473b90e3b5f2ef495b961a4f04e1b5ae91e09.tar.bz2
re PR target/18759 ([x86] using both -fomit-frame-pointer and -momit-leaf-frame-pointer enables frame pointers for non-leaf functions)
PR target/18759 * config/i386/i386.c (override_options): If -fomit-frame-pointer has already been specified, ignore the -momit-leaf-frame-pointer option. From-SVN: r91662
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2bbcd99..99b43d3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-02 Roger Sayle <roger@eyesopen.com>
+
+ PR target/18759
+ * config/i386/i386.c (override_options): If -fomit-frame-pointer has
+ already been specified, ignore the -momit-leaf-frame-pointer option.
+
2004-12-02 H.J. Lu <hongjiu.lu@intel.com>
* varasm.c (make_decl_rtl): Add the missing `;'.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index a3d2f28..1a63fe0 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1466,7 +1466,9 @@ override_options (void)
}
/* Keep nonleaf frame pointers. */
- if (TARGET_OMIT_LEAF_FRAME_POINTER)
+ if (flag_omit_frame_pointer)
+ target_flags &= ~MASK_OMIT_LEAF_FRAME_POINTER;
+ else if (TARGET_OMIT_LEAF_FRAME_POINTER)
flag_omit_frame_pointer = 1;
/* If we're doing fast math, we don't care about comparison order