summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/builtins.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bb162518d71..e3211698fc8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-16 Steve Ellcey <sje@cup.hp.com>
+
+ * builtins.c (expand_builtin_stpcpy): Do not create temporary
+ reg with VOIDmode.
+
2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 58eafd403af..d83b0de27de 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -3130,7 +3130,12 @@ expand_builtin_stpcpy (tree arglist, rtx target, enum machine_mode mode)
if (ret)
{
if (! target)
- target = gen_reg_rtx (mode);
+ {
+ if (mode != VOIDmode)
+ target = gen_reg_rtx (mode);
+ else
+ target = gen_reg_rtx (GET_MODE (ret));
+ }
if (GET_MODE (target) != GET_MODE (ret))
ret = gen_lowpart (GET_MODE (target), ret);