summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pp_hot.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pp_hot.c b/pp_hot.c
index ba8180582a..17710d5e4f 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -163,6 +163,10 @@ PP(pp_concat)
/* Take a copy since we're about to overwrite TARG */
olds = s = (U8*)savepvn((char*)s, len);
}
+ if (SvGMAGICAL(left))
+ mg_get(left);
+ else if (!SvOK(left) && SvTYPE(left) <= SVt_PVMG)
+ sv_setpv(left, ""); /* Suppress warning. */
l = (U8*)SvPV(left, targlen);
if (TARG != left)
sv_setpvn(TARG, (char*)l, targlen);