From 0118b9193d83cb42fc5b6b7f2095898296a4313c Mon Sep 17 00:00:00 2001
From: Eric Botcazou <ebotcazou@adacore.com>
Date: Fri, 29 Jun 2012 22:39:29 +0000
Subject: [PATCH] tree-eh.c (lower_try_finally_switch): Really put the location
 of the last statement of the finally block onto the switch.

	* tree-eh.c (lower_try_finally_switch): Really put the location of the
	last statement of the finally block onto the switch.

From-SVN: r189086
---
 gcc/ChangeLog | 5 +++++
 gcc/tree-eh.c | 5 ++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0fca228f3c24..45caa6795900 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* tree-eh.c (lower_try_finally_switch): Really put the location of the
+	last statement of the finally block onto the switch.
+
 2012-06-29  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR target/53539
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 89b95fa78afd..3b35ca428620 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -1320,9 +1320,8 @@ lower_try_finally_switch (struct leh_state *state, struct leh_tf_state *tf)
 
   /* The location of the finally is either the last stmt in the finally
      block or the location of the TRY_FINALLY itself.  */
-  finally_loc = gimple_seq_last_stmt (tf->top_p_seq) != NULL ?
-    gimple_location (gimple_seq_last_stmt (tf->top_p_seq))
-    : tf_loc;
+  x = gimple_seq_last_stmt (finally);
+  finally_loc = x ? gimple_location (x) : tf_loc;
 
   /* Lower the finally block itself.  */
   lower_eh_constructs_1 (state, &finally);
-- 
GitLab