[perl #47233] Core dump caused by goto
Dave Mitchell [Fri, 9 Nov 2007 00:56:20 +0000 (00:56 +0000)]
tmp disable printing of variable names caused by uninitialised
values within a pp_entersub or pp_goto

p4raw-id: //depot/perl@32247

sv.c
t/lib/warnings/9uninit

diff --git a/sv.c b/sv.c
index 2059512..cd7db08 100644 (file)
--- 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))
index 9fb5df1..e2e6ef9 100644 (file)
@@ -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.