diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2007-12-13 22:49:09 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2007-12-13 21:49:09 +0000 |
commit | 7b7e6ecdb03f08b99c4738473482b4f749af1de0 (patch) | |
tree | 1a2db453ef003669b76c5fe7b06ef0c746c75775 /gcc/tree-complex.c | |
parent | e49f4f07da9c797eb0efadb36161b36cdc7fef47 (diff) | |
download | gcc-7b7e6ecdb03f08b99c4738473482b4f749af1de0.zip gcc-7b7e6ecdb03f08b99c4738473482b4f749af1de0.tar.gz gcc-7b7e6ecdb03f08b99c4738473482b4f749af1de0.tar.bz2 |
re PR middle-end/33088 (spurious exceptions with -ffloat-store)
PR middle-end/33088
* gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
* tree-complex.c (init_dont_simulate_again): Return true if there are
uninitialized loads generated by gimplify_modify_expr_complex_part.
* tree-gimple.c (is_gimple_reg_type): Return false for complex types
if not optimizing.
* tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
(warn_uninit): ...here. Use ssa_undefined_value_p.
* tree-ssa-pre.c (is_undefined_value): Delete.
(phi_translate_1): Use ssa_undefined_value_p.
(add_to_exp_gen): Likewise.
(make_values_for_stmt): Likewise.
* tree-flow.h (ssa_undefined_value_p): Declare.
From-SVN: r130917
Diffstat (limited to 'gcc/tree-complex.c')
-rw-r--r-- | gcc/tree-complex.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index 693c8c9..a1964ee 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -246,6 +246,17 @@ init_dont_simulate_again (void) saw_a_complex_op = true; break; + case REALPART_EXPR: + case IMAGPART_EXPR: + /* The total store transformation performed during + gimplification creates such uninitialized loads + and we need to lower the statement to be able + to fix things up. */ + if (TREE_CODE (TREE_OPERAND (rhs, 0)) == SSA_NAME + && ssa_undefined_value_p (TREE_OPERAND (rhs, 0))) + saw_a_complex_op = true; + break; + default: break; } |