RETURN;
}
else if (LVRET) {
- if (GIMME == G_SCALAR)
+ if (GIMME != G_SCALAR)
Perl_croak(aTHX_ "Can't return hash to lvalue scalar context");
SETs((SV*)hv);
RETURN;
/* undef TARG, and push that undefined value */
if (type != OP_RCATLINE) {
SV_CHECK_THINKFIRST_COW_DROP(TARG);
- SvOK_off(TARG);
+ (void)SvOK_off(TARG);
}
PUSHTARG;
}
if (gimme == G_SCALAR) {
if (type != OP_RCATLINE) {
SV_CHECK_THINKFIRST_COW_DROP(TARG);
- SvOK_off(TARG);
+ (void)SvOK_off(TARG);
}
SPAGAIN;
PUSHTARG;
if (!c) {
register PERL_CONTEXT *cx;
SPAGAIN;
+ ReREFCNT_inc(rx);
PUSHSUBST(cx);
RETURNOP(cPMOP->op_pmreplroot);
}
HE* he;
he = hv_fetch_ent(PL_stashcache, sv, 0, 0);
if (he) {
- stash = (HV*)SvIV(HeVAL(he));
+ stash = INT2PTR(HV*,SvIV(HeVAL(he)));
goto fetch;
}
}
if (!stash)
packsv = sv;
else {
- SV* ref = newSViv((IV)stash);
+ SV* ref = newSViv(PTR2IV(stash));
hv_store(PL_stashcache, packname, packlen, ref, 0);
}
goto fetch;
/* the method name is unqualified or starts with SUPER:: */
packname = sep ? CopSTASHPV(PL_curcop) :
stash ? HvNAME(stash) : packname;
- packlen = strlen(packname);
+ if (!packname)
+ Perl_croak(aTHX_
+ "Can't use anonymous symbol table for method lookup");
+ else
+ packlen = strlen(packname);
}
else {
/* the method name is qualified */