summaryrefslogtreecommitdiff
path: root/gcc/tree-complex.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-complex.c')
-rw-r--r--gcc/tree-complex.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index f985503a835..fce124eb595 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -885,12 +885,7 @@ expand_complex_libcall (block_stmt_iterator *bsi, tree ar, tree ai,
{
enum machine_mode mode;
enum built_in_function bcode;
- tree args, fn, stmt, type;
-
- args = tree_cons (NULL, bi, NULL);
- args = tree_cons (NULL, br, args);
- args = tree_cons (NULL, ai, args);
- args = tree_cons (NULL, ar, args);
+ tree fn, stmt, type;
stmt = bsi_stmt (*bsi);
type = TREE_TYPE (GIMPLE_STMT_OPERAND (stmt, 1));
@@ -905,8 +900,7 @@ expand_complex_libcall (block_stmt_iterator *bsi, tree ar, tree ai,
gcc_unreachable ();
fn = built_in_decls[bcode];
- GIMPLE_STMT_OPERAND (stmt, 1)
- = build3 (CALL_EXPR, type, build_fold_addr_expr (fn), args, NULL);
+ GIMPLE_STMT_OPERAND (stmt, 1) = build_call_expr (fn, 4, ar, ai, br, bi);
update_stmt (stmt);
if (gimple_in_ssa_p (cfun))