From: Dave Mitchell Date: Fri, 9 Nov 2007 00:56:20 +0000 (+0000) Subject: [perl #47233] Core dump caused by goto X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7697b7e7aaadabc28b6762cc119298abb9a3b305;p=p5sagit%2Fp5-mst-13.2.git [perl #47233] Core dump caused by goto tmp disable printing of variable names caused by uninitialised values within a pp_entersub or pp_goto p4raw-id: //depot/perl@32247 --- diff --git a/sv.c b/sv.c index 2059512..cd7db08 100644 --- a/sv.c +++ b/sv.c @@ -12091,10 +12091,18 @@ S_find_uninit_var(pTHX_ OP* obase, SV* uninit_sv, bool match) case OP_RV2SV: case OP_CUSTOM: - case OP_ENTERSUB: match = 1; /* XS or custom code could trigger random warnings */ goto do_op; + case OP_ENTERSUB: + case OP_GOTO: + /* XXX tmp hack: these to may call an XS sub, and currently + XS subs don't have a SUB entry on the context stack, so CV nad + pad deteminaion goes wrong, and BAD things happen. So, just + don't try to detemine the value under those circumanstances. + Need a better fix at dome point. DAPM 11/2007 */ + break; + case OP_POS: /* def-ness of rval pos() is independent of the def-ness of its arg */ if ( !(obase->op_flags & OPf_MOD)) diff --git a/t/lib/warnings/9uninit b/t/lib/warnings/9uninit index 9fb5df1..e2e6ef9 100644 --- a/t/lib/warnings/9uninit +++ b/t/lib/warnings/9uninit @@ -1069,8 +1069,8 @@ Use of uninitialized value $m1 in splice at - line 10. Use of uninitialized value $g1 in splice at - line 10. Use of uninitialized value in addition (+) at - line 10. Use of uninitialized value $m1 in method lookup at - line 13. -Use of uninitialized value $m1 in subroutine entry at - line 15. -Use of uninitialized value $g1 in subroutine entry at - line 16. +Use of uninitialized value in subroutine entry at - line 15. +Use of uninitialized value in subroutine entry at - line 16. Use of uninitialized value $m1 in warn at - line 18. Use of uninitialized value $g1 in warn at - line 18. foo at - line 18.