emit-rtl.c (try_split): Do not try to split a BARRIER.
authorHerman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
Thu, 29 Oct 1998 01:25:35 +0000 (02:25 +0100)
committerJeff Law <law@gcc.gnu.org>
Thu, 29 Oct 1998 01:25:35 +0000 (18:25 -0700)
        * emit-rtl.c (try_split): Do not try to split a BARRIER.
Fixes core dump for c4x c-torture test.

From-SVN: r23420

gcc/ChangeLog
gcc/emit-rtl.c

index 5152d5c6b69f02a1f9cc872fd119465e54b2fb28..1dbc93a050bfe82bfb0db50b699022f92a31efdb 100644 (file)
@@ -1,3 +1,7 @@
+1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * emit-rtl.c (try_split): Do not try to split a BARRIER.
+
 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
                          Jeffrey A Law  (law@cygnus.com)
 
index e1209b7a6f7fc58f99d491a00360c015dbe4cc5b..df3a5a96e372f9ba605c95b4655826d4783c54ca 100644 (file)
@@ -2270,10 +2270,12 @@ try_split (pat, trial, last)
             time control returns here that insn will be fully split, so
             set LAST and continue from the insn after the one returned.
             We can't use next_active_insn here since AFTER may be a note.
-            Ignore deleted insns, which can be occur if not optimizing.  */
+            Ignore deleted insns, which can be occur if not optimizing,
+            and ignore BARRIERs which can occur if we split the insn
+            immediately before a BARRIER.  */
          for (tem = NEXT_INSN (before); tem != after;
               tem = NEXT_INSN (tem))
-           if (! INSN_DELETED_P (tem))
+           if (! INSN_DELETED_P (tem) && ! GET_CODE (tem) == BARRIER)
              tem = try_split (PATTERN (tem), tem, 1);
        }
       /* Avoid infinite loop if the result matches the original pattern.  */