-T _ uses the file name saved by a preceding stat. If there was no
preceding stat, the internal sv used to store the file name is unde-
fined, so SvPV producing an uninitialized warning. Normally a failed
-T will just return undefined and set $!. Normally stat on a filehan-
dle will set the internal stat file name to "".
This commit sets the internal file name to "" initially on startup,
instead of creating an undefined scalar.
GvMULTI_on(tmpgv);
GvIOp(tmpgv) = MUTABLE_IO(SvREFCNT_inc_simple(io));
- PL_statname = newSV(0); /* last filename we did stat on */
+ PL_statname = newSVpvs(""); /* last filename we did stat on */
}
void
}
use Config;
-plan(tests => 35 + 27*14);
+plan(tests => 36 + 27*14);
ok( -d 'op' );
ok( -f 'TEST' );
like $@, qr/^The stat preceding -l _ wasn't an lstat at /,
'-T HANDLE sets the stat type';
}
+
+is runperl(prog => '-T _', switches => ['-w'], stderr => 1), "",
+ 'no uninit warnings from -T with no preceding stat';