#define OP_GIMME_REVERSE(G) su_op_gimme_reverse(G)
#endif
+#ifndef OP_SIBLING
+# define OP_SIBLING(O) ((O)->op_sibling)
+#endif
+
#ifndef PERL_MAGIC_tied
# define PERL_MAGIC_tied 'P'
#endif
}
STATIC int su_uplevel_goto_static(const OP *o) {
- for (; o; o = o->op_sibling) {
+ for (; o; o = OP_SIBLING(o)) {
/* goto ops are unops with kids. */
if (!(o->op_flags & OPf_KIDS))
continue;
return cxix - 1;
break;
case CXt_SUBST:
- if (cx->blk_oldcop && cx->blk_oldcop->op_sibling
- && cx->blk_oldcop->op_sibling->op_type == OP_SUBST)
+ if (cx->blk_oldcop && OP_SIBLING(cx->blk_oldcop)
+ && OP_SIBLING(cx->blk_oldcop)->op_type == OP_SUBST)
return cxix - 1;
break;
}
return cxix + 1;
break;
case CXt_SUBST:
- if (next->blk_oldcop && next->blk_oldcop->op_sibling
- && next->blk_oldcop->op_sibling->op_type == OP_SUBST)
+ if (next->blk_oldcop && OP_SIBLING(next->blk_oldcop)
+ && OP_SIBLING(next->blk_oldcop)->op_type == OP_SUBST)
return cxix + 1;
break;
}
#endif
case CXt_SUBST: {
const COP *cop = cx->blk_oldcop;
- if (cop && cop->op_sibling) {
- switch (cop->op_sibling->op_flags & OPf_WANT) {
+ if (cop && OP_SIBLING(cop)) {
+ switch (OP_SIBLING(cop)->op_flags & OPf_WANT) {
case OPf_WANT_VOID:
return G_VOID;
case OPf_WANT_SCALAR: