diff options
-rw-r--r-- | doio.c | 8 | ||||
-rw-r--r-- | t/pragma/warn-1global | 5 |
2 files changed, 10 insertions, 3 deletions
@@ -839,6 +839,7 @@ my_stat(ARGSproto) } else { SV* sv = POPs; + char *s; PUTBACK; if (SvTYPE(sv) == SVt_PVGV) { tmpgv = (GV*)sv; @@ -849,11 +850,12 @@ my_stat(ARGSproto) goto do_fstat; } + s = SvPV(sv, na); statgv = Nullgv; - sv_setpv(statname,SvPV(sv, na)); + sv_setpv(statname, s); laststype = OP_STAT; - laststatval = PerlLIO_stat(SvPV(sv, na),&statcache); - if (laststatval < 0 && dowarn && strchr(SvPV(sv, na), '\n')) + laststatval = PerlLIO_stat(s, &statcache); + if (laststatval < 0 && dowarn && strchr(s, '\n')) warn(warn_nl, "stat"); return laststatval; } diff --git a/t/pragma/warn-1global b/t/pragma/warn-1global index 33252731b0..07b5bc8eb9 100644 --- a/t/pragma/warn-1global +++ b/t/pragma/warn-1global @@ -144,3 +144,8 @@ my $a ; chop $a ; my $c ; chop $c ; EXPECT Use of uninitialized value at - line 5. +######## +-w +-e undef +EXPECT +Use of uninitialized value at - line 2. |