From 2891d29af8907ce881662f4a02844926d7a293c7 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 31 Dec 2018 13:43:35 +0000 Subject: gentoo resync : 31.12.2018 --- dev-lang/perl/files/perl-5.26.2-hppa.patch | 105 +++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 dev-lang/perl/files/perl-5.26.2-hppa.patch (limited to 'dev-lang/perl/files') diff --git a/dev-lang/perl/files/perl-5.26.2-hppa.patch b/dev-lang/perl/files/perl-5.26.2-hppa.patch new file mode 100644 index 000000000000..83ed944353e5 --- /dev/null +++ b/dev-lang/perl/files/perl-5.26.2-hppa.patch @@ -0,0 +1,105 @@ +https://bugs.gentoo.org/634162 + +Source: +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869122 + +Index: perl-5.26.0/op.c +=================================================================== +--- perl-5.26.0.orig/op.c ++++ perl-5.26.0/op.c +@@ -14832,6 +14832,7 @@ Perl_custom_op_get_field(pTHX_ const OP + SV *keysv; + HE *he = NULL; + XOP *xop; ++ XOPRETANY any; + + static const XOP xop_null = { 0, 0, 0, 0, 0 }; + +@@ -14874,58 +14875,37 @@ Perl_custom_op_get_field(pTHX_ const OP + else + xop = INT2PTR(XOP *, SvIV(HeVAL(he))); + } +- { +- XOPRETANY any; +- if(field == XOPe_xop_ptr) { +- any.xop_ptr = xop; +- } else { +- const U32 flags = XopFLAGS(xop); +- if(flags & field) { +- switch(field) { +- case XOPe_xop_name: +- any.xop_name = xop->xop_name; +- break; +- case XOPe_xop_desc: +- any.xop_desc = xop->xop_desc; +- break; +- case XOPe_xop_class: +- any.xop_class = xop->xop_class; +- break; +- case XOPe_xop_peep: +- any.xop_peep = xop->xop_peep; +- break; +- default: +- NOT_REACHED; /* NOTREACHED */ +- break; +- } +- } else { +- switch(field) { +- case XOPe_xop_name: +- any.xop_name = XOPd_xop_name; +- break; +- case XOPe_xop_desc: +- any.xop_desc = XOPd_xop_desc; +- break; +- case XOPe_xop_class: +- any.xop_class = XOPd_xop_class; +- break; +- case XOPe_xop_peep: +- any.xop_peep = XOPd_xop_peep; +- break; +- default: +- NOT_REACHED; /* NOTREACHED */ +- break; +- } +- } ++ ++ if(field == XOPe_xop_ptr) { ++ any.xop_ptr = xop; ++ } else { ++ const U32 flags = XopFLAGS(xop); ++ switch(field) { ++ case XOPe_xop_name: ++ any.xop_name = (flags & field) ? xop->xop_name : XOPd_xop_name; ++ break; ++ case XOPe_xop_desc: ++ any.xop_desc = (flags & field) ? xop->xop_desc : XOPd_xop_desc; ++ break; ++ case XOPe_xop_class: ++ any.xop_class = (flags & field) ? xop->xop_class : XOPd_xop_class; ++ break; ++ case XOPe_xop_peep: ++ any.xop_peep = (flags & field) ? xop->xop_peep : XOPd_xop_peep; ++ break; ++ default: ++ NOT_REACHED; /* NOTREACHED */ ++ break; + } +- /* On some platforms (HP-UX, IA64) gcc emits a warning for this function: +- * op.c: In function 'Perl_custom_op_get_field': +- * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized] +- * This is because on those platforms (with -DEBUGGING) NOT_REACHED +- * expands to assert(0), which expands to ((0) ? (void)0 : +- * __assert(...)), and gcc doesn't know that __assert can never return. */ +- return any; + } ++ ++ /* On some platforms (HP-UX, IA64) gcc emits a warning for this function: ++ * op.c: In function 'Perl_custom_op_get_field': ++ * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized] ++ * This is because on those platforms (with -DEBUGGING) NOT_REACHED ++ * expands to assert(0), which expands to ((0) ? (void)0 : ++ * __assert(...)), and gcc doesn't know that __assert can never return. */ ++ return any; + } + + /* -- cgit v1.2.3