From 9dfd55f55b725d4e20f18e2824b7193d7ffd8715 Mon Sep 17 00:00:00 2001
From: Daniel Jacobowitz <dan@codesourcery.com>
Date: Mon, 21 Mar 2011 17:19:19 +0000
Subject: [PATCH] unwind-arm.c (__gnu_unwind_pr_common): Correct test for
 barrier handlers.

2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	gcc/
	* config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
	for barrier handlers.

From-SVN: r171251
---
 gcc/ChangeLog               | 5 +++++
 gcc/config/arm/unwind-arm.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b31e37d6807d..921109aa3188 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
+	for barrier handlers.
+
 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
 	* config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
diff --git a/gcc/config/arm/unwind-arm.c b/gcc/config/arm/unwind-arm.c
index 2c6e004890e3..4a9e2325c39a 100644
--- a/gcc/config/arm/unwind-arm.c
+++ b/gcc/config/arm/unwind-arm.c
@@ -1196,8 +1196,6 @@ __gnu_unwind_pr_common (_Unwind_State state,
 		  ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1];
 
 		  if (data[0] & uint32_highbit)
-		    phase2_call_unexpected_after_unwind = 1;
-		  else
 		    {
 		      data += rtti_count + 1;
 		      /* Setup for entry to the handler.  */
@@ -1207,6 +1205,8 @@ __gnu_unwind_pr_common (_Unwind_State state,
 		      _Unwind_SetGR (context, 0, (_uw) ucbp);
 		      return _URC_INSTALL_CONTEXT;
 		    }
+		  else
+		    phase2_call_unexpected_after_unwind = 1;
 		}
 	      if (data[0] & uint32_highbit)
 		data++;
-- 
GitLab