diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-11 18:41:47 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-11 18:41:47 +0000 |
commit | 3864ad30726e57c9e2f2931eb150ba7a677dfba6 (patch) | |
tree | 53b714fbb57b9a4edc2c059014d88e351591041f /gcc/tree-eh.c | |
parent | 0171a3f40a8831152741ffa9e04f9ba2fdf31cdf (diff) | |
download | gcc-3864ad30726e57c9e2f2931eb150ba7a677dfba6.tar.gz |
* config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/i386/i386.c (ix86_va_arg): Remove.
* config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/rs6000/rs6000.c (rs6000_va_arg): Remove.
* config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/alpha/alpha.c (alpha_va_arg): Remove.
* config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/sparc/sparc.c (sparc_va_arg): Remove.
* tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
assignment might throw.
* tree-eh.c (tree_could_throw_p): Support non-call exceptions in
expressions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82992 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 7d389817622..a4a0bc41d6e 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -1716,24 +1716,16 @@ tree_could_throw_p (tree t) return false; if (TREE_CODE (t) == MODIFY_EXPR) { - tree sub = TREE_OPERAND (t, 1); - if (TREE_CODE (sub) == CALL_EXPR) - t = sub; - else - { - if (flag_non_call_exceptions) - { - if (tree_could_trap_p (sub)) - return true; - return tree_could_trap_p (TREE_OPERAND (t, 0)); - } - return false; - } + if (flag_non_call_exceptions + && tree_could_trap_p (TREE_OPERAND (t, 0))) + return true; + t = TREE_OPERAND (t, 1); } if (TREE_CODE (t) == CALL_EXPR) return (call_expr_flags (t) & ECF_NOTHROW) == 0; - + if (flag_non_call_exceptions) + return tree_could_trap_p (t); return false; } |