aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-01-14 13:12:02 -0800
committerRichard Henderson <rth@gcc.gnu.org>2004-01-14 13:12:02 -0800
commitb298f00fbbbe3b4ef236419ef808a83e9291a085 (patch)
tree9436dbd423f487d1eb4d994fe5a3f1d816ae2a68 /gcc
parent1bddbeb409a4716c34b25b9d8bc5a1a4ef4acc39 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/dwarf2out.c7
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. */