Skip Menu |

This queue is for tickets about the Cond-Expr CPAN distribution.

Report information
The Basics
Id: 117254
Status: resolved
Priority: 0/
Queue: Cond-Expr

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.04
Fixed in: 0.05



Subject: Compilation error with perl 5.25.x (op_sibling)
The module does not compile anymore for bleadperl: cc -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I. -O2 -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -fPIC "-I/opt/perl-5.25.4/lib/5.25.4/x86_64-linux/CORE" Expr.c Expr.xs: In function ‘myck_entersub_cond’: Expr.xs:68:14: error: ‘OP’ has no member named ‘op_sibling’ if (!pushop->op_sibling) ^ Expr.xs:71:18: error: ‘OP’ has no member named ‘op_sibling’ condop = pushop->op_sibling; ^ Expr.xs:73:19: error: ‘OP’ has no member named ‘op_sibling’ rv2cvop = condop->op_sibling; ^ Expr.xs:74:9: error: ‘OP’ has no member named ‘op_sibling’ condop->op_sibling = NULL; ^ Expr.xs:75:9: error: ‘OP’ has no member named ‘op_sibling’ pushop->op_sibling = rv2cvop; ^ Makefile:338: recipe for target 'Expr.o' failed make: *** [Expr.o] Error 1
From: davem [...] iabyn.com
Here are patches I tried to email to p5p last december
Subject: 0001-Cond-Expr-add-ppport.h.patch

Message body is not shown because it is too large.

Subject: 0002-Cond-Expr-make-work-with-PERL_OP_PARENT.patch
From cde710a3d9e9e69be1574bc610c4f1d0c4cc67b3 Mon Sep 17 00:00:00 2001 From: David Mitchell <davem@iabyn.com> Date: Fri, 9 Dec 2016 12:01:48 +0000 Subject: [PATCH 2/2] Cond-Expr: make work with PERL_OP_PARENT --- Expr.xs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Expr.xs b/Expr.xs index f2d2a1e..3cb72f7 100644 --- a/Expr.xs +++ b/Expr.xs @@ -61,19 +61,25 @@ static OP * myck_entersub_cond (pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { OP *pushop, *condop, *rv2cvop; + OP *parent = entersubop; PERL_UNUSED_ARG(namegv); PERL_UNUSED_ARG(ckobj); pushop = cUNOPx(entersubop)->op_first; - if (!pushop->op_sibling) + if (!OpHAS_SIBLING(pushop)) { + parent = pushop; pushop = cUNOPx(pushop)->op_first; + } +#ifdef op_sibling_splice + condop = op_sibling_splice(parent, pushop, 1, NULL); +#else condop = pushop->op_sibling; - rv2cvop = condop->op_sibling; condop->op_sibling = NULL; pushop->op_sibling = rv2cvop; +#endif op_free(entersubop); return condop; -- 2.4.11
RT-Send-CC: davem [...] iabyn.com
On 2017-03-29 01:49:06, davem@iabyn.com wrote: Show quoted text
> Here are patches I tried to email to p5p last december
Thanks, I've released this in version 0.05!