diff options
author | Richard Guenther <rguenther@suse.de> | 2006-10-10 08:27:02 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2006-10-10 08:27:02 +0000 |
commit | be0436d7d964255fd5b9e69f3b2b00b6e301c3a6 (patch) | |
tree | 39e8cda86d252657f4fe7508add31edc797fa766 /gcc/except.c | |
parent | bdcee4712ec20209d14aeb2d0487de41be1ad424 (diff) | |
download | gcc-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.c | 3 |
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 |