PR middle-end/85369 - no -Wstringop-overflow for a strcpy / stpcpy call with a nonstring pointer when providing movstr pattern
gcc/ChangeLog: PR middle-end/85369 * builtins.c (expand_builtin_stpcpy_1): New function. (expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg only if the former succeeds. From-SVN: r260976
This commit is contained in:
parent
1ba9c854bb
commit
3ce4cdb2f7
2 changed files with 27 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
2018-05-30 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR middle-end/85369
|
||||
* builtins.c (expand_builtin_stpcpy_1): New function.
|
||||
(expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg
|
||||
only if the former succeeds.
|
||||
|
||||
2018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org>
|
||||
|
||||
* config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4
|
||||
|
|
|
@ -3814,7 +3814,7 @@ expand_builtin_strcpy_args (tree dest, tree src, rtx target)
|
|||
mode MODE if that's convenient). */
|
||||
|
||||
static rtx
|
||||
expand_builtin_stpcpy (tree exp, rtx target, machine_mode mode)
|
||||
expand_builtin_stpcpy_1 (tree exp, rtx target, machine_mode mode)
|
||||
{
|
||||
tree dst, src;
|
||||
location_t loc = EXPR_LOCATION (exp);
|
||||
|
@ -3891,6 +3891,25 @@ expand_builtin_stpcpy (tree exp, rtx target, machine_mode mode)
|
|||
}
|
||||
}
|
||||
|
||||
/* Expand a call EXP to the stpcpy builtin and diagnose uses of nonstring
|
||||
arguments while being careful to avoid duplicate warnings (which could
|
||||
be issued if the expander were to expand the call, resulting in it
|
||||
being emitted in expand_call(). */
|
||||
|
||||
static rtx
|
||||
expand_builtin_stpcpy (tree exp, rtx target, machine_mode mode)
|
||||
{
|
||||
if (rtx ret = expand_builtin_stpcpy_1 (exp, target, mode))
|
||||
{
|
||||
/* The call has been successfully expanded. Check for nonstring
|
||||
arguments and issue warnings as appropriate. */
|
||||
maybe_warn_nonstring_arg (get_callee_fndecl (exp), exp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
||||
/* Check a call EXP to the stpncpy built-in for validity.
|
||||
Return NULL_RTX on both success and failure. */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue