]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/13231 (Bad DWARF2 CFI when there is no frame pointer)
authorRichard Henderson <rth@redhat.com>
Wed, 14 Jan 2004 21:12:02 +0000 (13:12 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 14 Jan 2004 21:12:02 +0000 (13:12 -0800)
        PR debug/13231
        * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
        instructions.

From-SVN: r75884

gcc/ChangeLog
gcc/dwarf2out.c

index be309dd5b3e34251f8235197e5cd8e4a3485fe5f..5da9220a81927a9050ed1b7bd1210b709b470cdf 100644 (file)
@@ -1,3 +1,9 @@
+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
index 5f75d296450c590bd3569020dac03d87657af236..f1f977113d5587c07f191f68bf2cb800293e2a99 100644 (file)
@@ -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.  */