aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)