* flow.c (delete_noop_moves): Do not confuse libcall regions.
authorJan Hubicka <jh@suse.cz>
Tue, 24 Jul 2001 08:54:59 +0000 (10:54 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 24 Jul 2001 08:54:59 +0000 (08:54 +0000)
From-SVN: r44290

gcc/ChangeLog
gcc/flow.c

index ed7a5ae19e25283d2d58c176771cc7853560bc22..727bcf9f4f3301621bfc91b66225f6e635a89c2e 100644 (file)
@@ -1,3 +1,7 @@
+Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * flow.c (delete_noop_moves): Do not confuse libcall regions.
+
 2001-07-23  Richard Henderson  <rth@redhat.com>
 
        * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
index 904684a37cd5ded943e37b36c75682020a5e233d..5850daf191f9df99f4168b9b1c7c63eee12c4b29 100644 (file)
@@ -4327,9 +4327,11 @@ delete_noop_moves (f)
          next = NEXT_INSN (insn);
          if (INSN_P (insn) && noop_move_p (insn))
            {
-             if (insn == bb->end)
-               bb->end = PREV_INSN (insn);
-             flow_delete_insn (insn);
+             /* Do not call flow_delete_insn here to not confuse backward
+                pointers of LIBCALL block.  */
+             PUT_CODE (insn, NOTE);
+             NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
+             NOTE_SOURCE_FILE (insn) = 0;
            }
        }
     }