From cf1955dc95d70b3e6cdbbdf358bcd865ef0cb0f5 Mon Sep 17 00:00:00 2001
From: Paul Brook <paul@codesourcery.com>
Date: Fri, 20 Jan 2006 00:01:56 +0000
Subject: [PATCH] arm.c (arm_compute_func_type): Treat all functions as nothrow
 when unwinding tables are disabled.

2006-01-19  Paul Brook  <paul@codesourcery.com>

	* gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
	as nothrow when unwinding tables are disabled.

From-SVN: r109994
---
 gcc/ChangeLog        | 5 +++++
 gcc/config/arm/arm.c | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc65db863676..ff5462f26a7f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-19  Paul Brook  <paul@codesourcery.com>
+
+	* gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
+	as nothrow when unwinding tables are disabled.
+
 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
 	PR testsuite/25171
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index e5309e046ddd..23f64aee38ba 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1413,7 +1413,9 @@ arm_compute_func_type (void)
      register values that will never be needed again.  This optimization
      was added to speed up context switching in a kernel application.  */
   if (optimize > 0
-      && TREE_NOTHROW (current_function_decl)
+      && (TREE_NOTHROW (current_function_decl)
+          || !(flag_unwind_tables
+               || (flag_exceptions && !USING_SJLJ_EXCEPTIONS)))
       && TREE_THIS_VOLATILE (current_function_decl))
     type |= ARM_FT_VOLATILE;
 
-- 
GitLab