[Bug fortran/101919] Inconsistent -Wstringop-overread warning with -flto

anlauf at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 10 20:25:48 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101919

--- Comment #4 from anlauf at gcc dot gnu.org ---
This fixes comment#2:

diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index e7aec3845d3..f7e2a0dba57 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -8102,10 +8102,12 @@ gfc_trans_string_copy (stmtblock_t * block, tree
dlength, tree dest,
   tmp3 = gfc_finish_block (&tempblock);

   /* The truncated memmove if the slen >= dlen.  */
+  tmp2 = fold_build2_loc (input_location, MIN_EXPR,
+                         TREE_TYPE (slen), slen, dlen);
   tmp2 = build_call_expr_loc (input_location,
                              builtin_decl_explicit (BUILT_IN_MEMMOVE),
                              3, dest, src,
-                             fold_convert (size_type_node, dlen));
+                             fold_convert (size_type_node, tmp2));

   /* The whole copy_string function is there.  */
   tmp = fold_build3_loc (input_location, COND_EXPR, void_type_node, cond2,


More information about the Gcc-bugs mailing list