diff options
author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-16 03:38:22 +0000 |
---|---|---|
committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-16 03:38:22 +0000 |
commit | 41076ef6f964adde18101acf85c620c4818a83e2 (patch) | |
tree | ab46b6fc569996fc94b0894059374459f6e9ad7f /gcc/tree-cfg.c | |
parent | f74811fea0c596c8ba7dbc74dddffe5c7c6e7b14 (diff) | |
download | gcc-41076ef6f964adde18101acf85c620c4818a83e2.tar.gz |
PR middle-end/30391
* tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
should be unreachable.
(build2_stat): Allow construction of MODIFY_EXPR at any time.
For the time being redirect GIMPLE_MODIFY_STMT to the new
(renamed) build_gimple_modify_stmt_stat.
(build2_gimple_stat): Rename to...
(build_gimple_modify_stmt_stat): Now longer take a CODE argument.
Always build a GIMPLE_MODIFY_STMT node.
* tree.h (build2_gimple, build2_gimple_stat): Delete.
(build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
declarations.
* tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
* tree-complex.c (set_component_ssa_name, expand_complex_move,
expand_complex_div_wide): Likewise.
* tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
* tree-ssa-loop-im.c (schedule_sm): Likewise.
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
* tree-ssa-loop-manip.c (create_iv): Likewise.
* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
abs_replacement): Likewise.
* tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
realify_fake_stores): Likewise.
* builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
node rather than a GIMPLE_MODIFY_STMT node.
(std_gimpify_va_arg_expr, expand_builtin_va_copy,
fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
Likewise.
(integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
* expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
GIMPLE_MODIFY_STMT.
* gfortran.dg/pr30391-1.f90: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122030 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 7d28aa941a7..4d6957fc603 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -294,8 +294,8 @@ factor_computed_gotos (void) } /* Copy the original computed goto's destination into VAR. */ - assignment = build2_gimple (GIMPLE_MODIFY_STMT, - var, GOTO_DESTINATION (last)); + assignment = build_gimple_modify_stmt (var, + GOTO_DESTINATION (last)); bsi_insert_before (&bsi, assignment, BSI_SAME_STMT); /* And re-vector the computed goto to the new destination. */ @@ -1260,7 +1260,7 @@ tree_merge_blocks (basic_block a, basic_block b) with ordering of phi nodes. This is because A is the single predecessor of B, therefore results of the phi nodes cannot appear as arguments of the phi nodes. */ - copy = build2_gimple (GIMPLE_MODIFY_STMT, def, use); + copy = build_gimple_modify_stmt (def, use); bsi_insert_after (&bsi, copy, BSI_NEW_STMT); SSA_NAME_DEF_STMT (def) = copy; remove_phi_node (phi, NULL, false); @@ -5646,7 +5646,7 @@ gimplify_val (block_stmt_iterator *bsi, tree type, tree exp) return exp; t = make_rename_temp (type, NULL); - new_stmt = build2_gimple (GIMPLE_MODIFY_STMT, t, exp); + new_stmt = build_gimple_modify_stmt (t, exp); orig_stmt = bsi_stmt (*bsi); SET_EXPR_LOCUS (new_stmt, EXPR_LOCUS (orig_stmt)); |