diff options
-rw-r--r-- | pp.c | 2 | ||||
-rw-r--r-- | toke.c | 9 |
2 files changed, 7 insertions, 4 deletions
@@ -5982,7 +5982,7 @@ PP(pp_coreargs) const bool constr = PL_op->op_private & whicharg; PUSHs(S_rv2gv(aTHX_ svp && *svp ? *svp : &PL_sv_undef, - constr, CopHINTS_get(PL_curcop) & HINT_STRICT_REFS, + constr, cBOOL(CopHINTS_get(PL_curcop) & HINT_STRICT_REFS), !constr )); } @@ -767,8 +767,11 @@ Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, U32 flags) parser->linestart = SvPVX(parser->linestr); parser->bufend = parser->bufptr + SvCUR(parser->linestr); parser->last_lop = parser->last_uni = NULL; - parser->lex_flags = flags & (LEX_IGNORE_UTF8_HINTS|LEX_EVALBYTES - |LEX_DONT_CLOSE_RSFP); + + assert(FITS_IN_8_BITS(LEX_IGNORE_UTF8_HINTS|LEX_EVALBYTES + |LEX_DONT_CLOSE_RSFP)); + parser->lex_flags = (U8) (flags & (LEX_IGNORE_UTF8_HINTS|LEX_EVALBYTES + |LEX_DONT_CLOSE_RSFP)); parser->in_pod = parser->filtered = 0; } @@ -4791,7 +4794,7 @@ Perl_yylex(pTHX) char *d; STRLEN len; bool bof = FALSE; - const bool saw_infix_sigil = PL_parser->saw_infix_sigil; + const bool saw_infix_sigil = cBOOL(PL_parser->saw_infix_sigil); U8 formbrack = 0; U32 fake_eof = 0; |