Commit 68ef8841 by Kaveh R. Ghazi Committed by Kaveh Ghazi

builtins.c (expand_builtin_stpcpy): Only expand when the length of the source…

builtins.c (expand_builtin_stpcpy): Only expand when the length of the source string can be evaluated at compile-time.

	* builtins.c (expand_builtin_stpcpy): Only expand when the length
	of the source string can be evaluated at compile-time.

From-SVN: r66503
parent 5f7262e6
2003-05-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (expand_builtin_stpcpy): Only expand when the length
of the source string can be evaluated at compile-time.
2003-05-05 Aldy Hernandez <aldyh@redhat.com>
* testsuite/gcc.c-torture/compile/simd-6.c: New.
......
......@@ -2508,7 +2508,7 @@ expand_builtin_stpcpy (arglist, target, mode)
else
{
tree newarglist;
tree len;
tree src, len;
/* If return value is ignored, transform stpcpy into strcpy. */
if (target == const0_rtx)
......@@ -2527,8 +2527,12 @@ expand_builtin_stpcpy (arglist, target, mode)
target, mode, EXPAND_NORMAL);
}
len = c_strlen (TREE_VALUE (TREE_CHAIN (arglist)));
if (len == 0)
/* Ensure we get an actual string who length can be evaluated at
compile-time, not an expression containing a string. This is
because the latter will potentially produce pessimized code
when used to produce the return value. */
src = TREE_VALUE (TREE_CHAIN (arglist));
if (! c_getstr (src) || ! (len = c_strlen (src)))
return 0;
len = fold (size_binop (PLUS_EXPR, len, ssize_int (1)));
......
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