summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@engin.umich.edu>1998-05-14 16:52:19 +0000
committerTim Bunce <TimBunce@ig.ac.uk>1998-05-14 16:52:19 +0000
commitdcf6088bb1fec02aa649f566083201f09550ae4f (patch)
tree9a64af1782c0b72f046894cb1cb0f511210f6f69
parentd55413fef09b7ce4ee2eed6d199b043fbddcefdb (diff)
downloadperl-dcf6088bb1fec02aa649f566083201f09550ae4f.tar.gz
"fix C<print "foo ${\()}"> (pp_refgen fumbles when G_SCALAR, no args)"
Msg-ID: <199805070402.AAA02858@aatma.engin.umich.edu> Files: pp.c p4raw-id: //depot/maint-5.004/perl@971
-rw-r--r--pp.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/pp.c b/pp.c
index 1b2cb39c2c..ccf8c3dc63 100644
--- a/pp.c
+++ b/pp.c
@@ -376,8 +376,13 @@ PP(pp_refgen)
{
dSP; dMARK;
if (GIMME != G_ARRAY) {
- MARK[1] = *SP;
- SP = MARK + 1;
+ if (++MARK <= SP)
+ *MARK = *SP;
+ else
+ *MARK = &sv_undef;
+ *MARK = refto(*MARK);
+ SP = MARK;
+ RETURN;
}
EXTEND_MORTAL(SP - MARK);
while (++MARK <= SP)