diff options
author | Richard Henderson <rth@redhat.com> | 2004-01-14 13:12:02 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-01-14 13:12:02 -0800 |
commit | b298f00fbbbe3b4ef236419ef808a83e9291a085 (patch) | |
tree | 9436dbd423f487d1eb4d994fe5a3f1d816ae2a68 /gcc | |
parent | 1bddbeb409a4716c34b25b9d8bc5a1a4ef4acc39 (diff) | |
download | gcc-b298f00fbbbe3b4ef236419ef808a83e9291a085.zip gcc-b298f00fbbbe3b4ef236419ef808a83e9291a085.tar.gz gcc-b298f00fbbbe3b4ef236419ef808a83e9291a085.tar.bz2 |
re PR debug/13231 (Bad DWARF2 CFI when there is no frame pointer)
PR debug/13231
* dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
instructions.
From-SVN: r75884
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index be309dd..5da9220a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2004-01-14 Richard Henderson <rth@redhat.com> + PR debug/13231 + * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue + instructions. + +2004-01-14 Richard Henderson <rth@redhat.com> + PR c++/12491 * except.c (struct eh_region): Add u.fixup.resolved. (resolve_one_fixup_region): Split out from ... diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 5f75d29..f1f9771 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1057,6 +1057,13 @@ dwarf2out_stack_adjust (rtx insn) const char *label; int i; + /* Don't handle epilogues at all. Certainly it would be wrong to do so + with this function. Proper support would require all frame-related + insns to be marked, and to be able to handle saving state around + epilogues textually in the middle of the function. */ + if (prologue_epilogue_contains (insn) || sibcall_epilogue_contains (insn)) + return; + if (!flag_asynchronous_unwind_tables && GET_CODE (insn) == CALL_INSN) { /* Extract the size of the args from the CALL rtx itself. */ |