diff options
author | Richard Henderson <rth@redhat.com> | 2005-10-05 11:19:26 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-10-05 11:19:26 -0700 |
commit | d3073c70c5db2f657da6185f16662d14e3e32270 (patch) | |
tree | d99bcd5da2f6437d8312957a5442aca23f22ce74 /gcc/toplev.c | |
parent | 10dc6e8cea9ca2bef33572e27a196d87e772546b (diff) | |
download | gcc-d3073c70c5db2f657da6185f16662d14e3e32270.zip gcc-d3073c70c5db2f657da6185f16662d14e3e32270.tar.gz gcc-d3073c70c5db2f657da6185f16662d14e3e32270.tar.bz2 |
re PR target/23602 (1081 test failures in libjava, when configured for i486-linux)
PR target/23602
* toplev.c (process_options): Warn about unsupported combinations
of unwind tables and omit-frame-pointer.
* config/i386/i386.c (override_options): Similarly. Enable
accumulate-outgoing-args if not explicitly disabled.
testsuite/
* g++.dg/eh/omit-frame-pointer.C: Remove i?86 specific options.
* g++.dg/eh/omit-frame-pointer2.C: Likewise.
libjava/
* configure.host (i?86-*): Set -fomit-frame-pointer in libgcj_flags,
but not BACKTRACESPEC.
(x86_64-*): Similarly. Don't set -ffloat-store in 64-bit mode.
From-SVN: r105009
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index b963170..796c7bf 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1778,6 +1778,18 @@ process_options (void) } if (!flag_stack_protect) warn_stack_protect = 0; + + /* ??? Unwind info is not correct around the CFG unless either a frame + pointer is present or A_O_A is set. Fixing this requires rewriting + unwind info generation to be aware of the CFG and propagating states + around edges. */ + if (flag_unwind_tables && !ACCUMULATE_OUTGOING_ARGS + && flag_omit_frame_pointer) + { + warning (0, "unwind tables currently requires a frame pointer " + "for correctness"); + flag_omit_frame_pointer = 0; + } } /* Initialize the compiler back end. */ |