aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2006-10-10 08:27:02 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2006-10-10 08:27:02 +0000
commitbe0436d7d964255fd5b9e69f3b2b00b6e301c3a6 (patch)
tree39e8cda86d252657f4fe7508add31edc797fa766 /gcc/except.c
parentbdcee4712ec20209d14aeb2d0487de41be1ad424 (diff)
downloadgcc-be0436d7d964255fd5b9e69f3b2b00b6e301c3a6.zip
gcc-be0436d7d964255fd5b9e69f3b2b00b6e301c3a6.tar.gz
gcc-be0436d7d964255fd5b9e69f3b2b00b6e301c3a6.tar.bz2
re PR rtl-optimization/29323 (set_nothrow_function_flags does invalid analysis on weak functions)
2006-10-10 Richard Guenther <rguenther@suse.de> PR rtl-optimization/29323 * except.c (set_nothrow_function_flags): For functions that do not bind local bail out early. * decl.c (finish_function): Set TREE_NOTHROW only for functions that bind local. From-SVN: r117598
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/except.c b/gcc/except.c
index b344087..30dafbb 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2787,6 +2787,9 @@ set_nothrow_function_flags (void)
{
rtx insn;
+ if (!targetm.binds_local_p (current_function_decl))
+ return 0;
+
TREE_NOTHROW (current_function_decl) = 1;
/* Assume cfun->all_throwers_are_sibcalls until we encounter