diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-04-08 13:03:56 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-04-08 13:03:56 -0700 |
commit | 096c060c3521cdedd801e684e4308ce9cee97019 (patch) | |
tree | 684814e29cf7a8585ba47dd3a49463fd2410dc31 /pp.h | |
parent | 85935d8e7bc504b57c9aea69973920ebe632631d (diff) | |
download | perl-096c060c3521cdedd801e684e4308ce9cee97019.tar.gz |
Revert parts of c31c291..96b6b87
This restores the old definition of dPOPTOPiirl_nomg from
before 96b6b87 and the old definition of dPOPXiirl_ul_nomg from
before e62ca0f (except for a bug fix: POPi cannot be used since
it’s magical). It also reverts most of c31c291.
This does mean that uninitialized warnings for various operators are
back in reverse order. So I am reinstating a bug with this commit. But
that bug was never a 5.14 blocker and so should never have been fixed
during code freeze (and there is the slight possibility that the fix
would break sensitive test suites). It was only fixed ‘for free’ as a
side effect of fixing [perl #87708], but that bug turned out to have a
better fix (commit 75ea7a1) that allows these changes to be reverted.
Diffstat (limited to 'pp.h')
-rw-r--r-- | pp.h | 13 |
1 files changed, 3 insertions, 10 deletions
@@ -355,10 +355,9 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>. SV *leftsv = CAT2(X,s); \ IV left = USE_LEFT(leftsv) ? SvIV(leftsv) : 0 #define dPOPXiirl_ul_nomg(X) \ - SV *rightsv = POPs; \ + IV right = (sp--, SvIV_nomg(TOPp1s)); \ SV *leftsv = CAT2(X,s); \ - IV left = USE_LEFT(leftsv) ? SvIV_nomg(leftsv) : 0; \ - IV right = SvIV_nomg(rightsv) + IV left = USE_LEFT(leftsv) ? SvIV_nomg(leftsv) : 0 #define dPOPPOPssrl dPOPXssrl(POP) #define dPOPPOPnnrl dPOPXnnrl(POP) @@ -371,17 +370,11 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>. #define dPOPTOPnnrl_ul dPOPXnnrl_ul(TOP) #define dPOPTOPnnrl_nomg \ NV right = SvNV_nomg(TOPs); NV left = (sp--, SvNV_nomg(TOPs)) -#ifdef PERL_CORE -# define dPOPTOPnnrl_halfmg \ - NV left = SvNV_nomg(TOPm1s); \ - NV right = TOPs == TOPm1s ? SvNV(TOPs) : SvNV_nomg(TOPs); sp-- -#endif #define dPOPTOPiirl dPOPXiirl(TOP) #define dPOPTOPiirl_ul dPOPXiirl_ul(TOP) #define dPOPTOPiirl_ul_nomg dPOPXiirl_ul_nomg(TOP) #define dPOPTOPiirl_nomg \ - IV left = SvIV_nomg(TOPm1s); \ - IV right = (sp--, TOPp1s == TOPs ? SvIV(TOPs) : SvIV_nomg(TOPp1s)) + IV right = SvIV_nomg(TOPs); IV left = (sp--, SvIV_nomg(TOPs)) #define RETPUSHYES RETURNX(PUSHs(&PL_sv_yes)) #define RETPUSHNO RETURNX(PUSHs(&PL_sv_no)) |