Commit 3ce4cdb2 by Martin Sebor Committed by Martin Sebor

PR middle-end/85369 - no -Wstringop-overflow for a strcpy / stpcpy call with a…

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
parent 1ba9c854
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. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment