diff options
author | Richard Guenther <rguenther@suse.de> | 2009-01-18 15:51:12 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-01-18 15:51:12 +0000 |
commit | 890065bfe4a9d3367568a2f5a9a12b6289f377d0 (patch) | |
tree | c3c88c9e03ec958f75cbb15702d98af42d7408c2 /gcc/tree-flow.h | |
parent | a729d731c8a6dcd45760f1bd7bc5d5379ae49d2c (diff) | |
download | gcc-890065bfe4a9d3367568a2f5a9a12b6289f377d0.zip gcc-890065bfe4a9d3367568a2f5a9a12b6289f377d0.tar.gz gcc-890065bfe4a9d3367568a2f5a9a12b6289f377d0.tar.bz2 |
re PR tree-optimization/38819 (trapping expression wrongly hoisted out of loop)
2009-01-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38819
* tree-flow.h (operation_could_trap_helper_p): Declare.
* tree-eh.c (operation_could_trap_helper_p): Export.
* tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
* tree-ssa-sccvn.c (vn_nary_may_trap): New function.
* tree-ssa-pre.c (insert_into_preds_of_block): Check if we
are about to insert a possibly trapping instruction and fail
in this case.
* gcc.c-torture/execute/pr38819.c: New testcase.
From-SVN: r143485
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r-- | gcc/tree-flow.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 4657862..96c098e 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -1071,6 +1071,8 @@ static inline bool unmodifiable_var_p (const_tree); /* In tree-eh.c */ extern void make_eh_edges (gimple); extern bool tree_could_trap_p (tree); +extern bool operation_could_trap_helper_p (enum tree_code, bool, bool, bool, + bool, tree, bool *); extern bool operation_could_trap_p (enum tree_code, bool, bool, tree); extern bool stmt_could_throw_p (gimple); extern bool tree_could_throw_p (tree); |