aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-07-24 20:18:13 -0700
committerRichard Henderson <rth@gcc.gnu.org>2011-07-24 20:18:13 -0700
commit3382318ac8a06d22910426545aa61c1ecd47fd39 (patch)
tree2845cc3616b86220d804629337dbbd84a05f846e /gcc
parent2f23f97acc3d668939f397c2d6b39ab863d6340e (diff)
downloadgcc-3382318ac8a06d22910426545aa61c1ecd47fd39.zip
gcc-3382318ac8a06d22910426545aa61c1ecd47fd39.tar.gz
gcc-3382318ac8a06d22910426545aa61c1ecd47fd39.tar.bz2
re PR debug/49827 (sparc64-linux and cris-elf bootstrap failures due to ICE in dwarf2cfi.c connect_traces)
PR debug/49827 * dwarf2cfi.c (create_trace_edges): Handle sequences properly. From-SVN: r176728
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2cfi.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab089e5..4fc18ee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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.
Zero args_size for abnormal edges. Adjust all callers.
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index fd5f680..9e64de6 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -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)