diff options
author | Jan Hubicka <jh@suse.cz> | 2009-04-18 20:39:52 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2009-04-18 18:39:52 +0000 |
commit | 2505c5edcac3fbc0a39ad74c63bab1534ee6e491 (patch) | |
tree | 605c8e1d928935149f9367d15c77d8c439de199f /gcc/tree-cfg.c | |
parent | c7f9c0b9835fc77208bddffec0ba71d33fb425fa (diff) | |
download | gcc-2505c5edcac3fbc0a39ad74c63bab1534ee6e491.zip gcc-2505c5edcac3fbc0a39ad74c63bab1534ee6e491.tar.gz gcc-2505c5edcac3fbc0a39ad74c63bab1534ee6e491.tar.bz2 |
cgraph.c (cgraph_make_edge, [...]): Set nothrow flag.
* cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
Set nothrow flag.
* cgraph.h (struct function): Reduce loop_nest to 30 bits; add
can_throw_external flag.
* ipa-reference.c (ipa_utils_reduced_inorder): Update call.
* ipa-pure-const.c (ignore_edge): New function.
(propagate): Compute order for NOTHROW computation; set NOTHROWs
only over can_throw_external edges.
(local_pure_const): Add nothrow flag.
* ipa-utils.c (searchc): Add ignore_edge callback.
(ipa_utils_reduced_inorder): Add ignore_edge callback.
* ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
(set_nothrow_function_flags): Update cgraph.
* tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
From-SVN: r146322
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index d4aa935..9c70146 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -4156,7 +4156,10 @@ verify_stmt (gimple_stmt_iterator *gsi) to match. */ if (lookup_stmt_eh_region (stmt) >= 0) { - if (!stmt_could_throw_p (stmt)) + /* During IPA passes, ipa-pure-const sets nothrow flags on calls + and they are updated on statements only after fixup_cfg + is executed at beggining of expansion stage. */ + if (!stmt_could_throw_p (stmt) && cgraph_state != CGRAPH_STATE_IPA_SSA) { error ("statement marked for throw, but doesn%'t"); goto fail; |