From ad5618b3e9dcbe0e3c363cfcd2a8393892fa7270 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 25 Jul 2011 03:18:13 +0000
Subject: [PATCH] PR debug/49827         * dwarf2cfi.c (create_trace_edges):
 Handle sequences properly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176728 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog   | 5 +++++
 gcc/dwarf2cfi.c | 8 ++++++++
 2 files changed, 13 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab089e504b4..4fc18eeed46 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index fd5f680f682..9e64de67ec0 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)
-- 
GitLab