Dave Mitchell wrote: > > Here's a second shot, using OPf_SPECIAL in op_flags rather than a spare > hints bit in op_private. Thanks, applied as #18589. > It still doesn't solve the problem of ENTERSUB() expecting op_private s/ENTER/PUSH/ > to have valid flags rather than hints bits. I'm a bit out of my depth > on this one (eg - are the hints bits for compile-time or runtime???), but > my vague suggestions would be: The hint bits in cop->op_private are for runtime. At compile-time, they're in PL_hints. Are those flags actually useful ? OPpENTERSUB_INARGS is only for OP_RV2CV, while PUSHSUB is only used with ops OP_ENTERSUB, OP_DBSTATE, and OP_SORT. And OPpLVAL_INTRO doesn't seem to be set on COPs (?). > a) make PUSHSUB check for OP_DBSTATE - bad, because its in a critical > path > b) zero out the OP_DBSTATE's op_private before doing an PUSHSUB - assuming > that its only needed for compile time > c) as b), but restore after, if needed for runtime > d) fake up an OP with null op_private,and op_next pointing to the > OP_DBSTATE, then point PL_op to this. or e) use a version of PUSHSUB that doesn't look for flags in PL_op->op_private in pp_dbstate.