Hi,

when looking for detected call argument type incompatibilities I
stumbled over a call to builtin_memcpy which originally was a call to
builtin_memset but simplify_builtin_call changed it to the former
without setting the gimple statement fntype.  That's probably not a big
deal but since I know about it I thought I might as well make the
statement consistent with the following.

Bootstrapped and tested on x86-64-linux.  OK for trunk?

Thanks,

Martin


2019-10-04  Martin Jambor  <mjam...@suse.cz>

        * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
        fntype when switching to calling memcpy instead of memset.
---
 gcc/tree-ssa-forwprop.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 221f140b356..a1e22c93631 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -1426,8 +1426,10 @@ simplify_builtin_call (gimple_stmt_iterator *gsi_p, tree 
callee2)
              if (!is_gimple_val (ptr1))
                ptr1 = force_gimple_operand_gsi (gsi_p, ptr1, true, NULL_TREE,
                                                 true, GSI_SAME_STMT);
-             gimple_call_set_fndecl (stmt2,
-                                     builtin_decl_explicit (BUILT_IN_MEMCPY));
+             tree fndecl = builtin_decl_explicit (BUILT_IN_MEMCPY);
+             gimple_call_set_fndecl (stmt2, fndecl);
+             gimple_call_set_fntype (as_a <gcall *> (stmt2),
+                                     TREE_TYPE (fndecl));
              gimple_call_set_arg (stmt2, 0, ptr1);
              gimple_call_set_arg (stmt2, 1, new_str_cst);
              gimple_call_set_arg (stmt2, 2,
-- 
2.23.0

Reply via email to