http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60256

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
We call c_fully_fold on strcpy (s, s);, and because this CALL_EXPR is
tcc_vl_exp, we call fold () on it.  fold () then via fold_call_expr -> ... 
calls fold_builtin_strcpy and that hits
  /* If SRC and DEST are the same (and not volatile), return DEST.  */
  if (operand_equal_p (src, dest, 0))
    return fold_convert_loc (loc, TREE_TYPE (TREE_TYPE (fndecl)), dest);

But on second thought, delayed folding won't help, as uninit passes are run
quite late and at that point strcpy(s, s); will be already gone.

Reply via email to