re PR debug/49827 (sparc64-linux and cris-elf bootstrap failures due to ICE in dwarf2...
authorRichard Henderson <rth@redhat.com>
Mon, 25 Jul 2011 03:18:13 +0000 (20:18 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 25 Jul 2011 03:18:13 +0000 (20:18 -0700)
PR debug/49827
        * dwarf2cfi.c (create_trace_edges): Handle sequences properly.

From-SVN: r176728

gcc/ChangeLog
gcc/dwarf2cfi.c

index ab089e504b4ab5ab5a7ca178d1e995c50d31b4b5..4fc18eeed46717918f85818dd6632f31a98f4ca7 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-24  Richard Henderson  <rth@redhat.com>
+
+       PR debug/49827
+       * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
+
 2011-07-24  Richard Henderson  <rth@redhat.com>
 
        * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
index fd5f680f6822fc3ce092a1c2b9de842b512f9320..9e64de67ec0b191f7fe32bca626fdbfab07395bb 100644 (file)
@@ -2507,6 +2507,14 @@ create_trace_edges (rtx insn)
        for (lab = nonlocal_goto_handler_labels; lab; lab = XEXP (lab, 1))
          maybe_record_trace_start (XEXP (lab, 0), insn, true);
     }
+  else if (GET_CODE (PATTERN (insn)) == SEQUENCE)
+    {
+      rtx seq = PATTERN (insn);
+      int i, n = XVECLEN (seq, 0);
+      for (i = 0; i < n; ++i)
+       create_trace_edges (XVECEXP (seq, 0, i));
+      return;
+    }
 
   /* Process EH edges.  */
   if (CALL_P (insn) || cfun->can_throw_non_call_exceptions)