GvSV(PL_errgv) is always non-NULL. That stopped being the case with
change 25009 (ish) - when we stopped automatically creating a(n unused)
SV at GV creation time.
p4raw-id: //depot/perl@31313
gp->gp_io = newIO();
IoFLAGS(gp->gp_io) |= IOf_ARGV|IOf_START;
}
+#ifdef PERL_DONT_CREATE_GVSV
+ if (gv == PL_errgv) {
+ /* We could scatter this logic everywhere by changing the
+ definition of ERRSV from GvSV() to GvSVn(), but it seems more
+ efficient to do this check once here. */
+ gp->gp_sv = newSV(0);
+ }
+#endif
GvGP(gv) = gp;
}
else {
@INC = qw(. ../lib);
require './test.pl';
}
-plan tests => 120;
+plan tests => 122;
my $list_assignment_supported = 1;
ok(! exists($h{'k2'}));
is($h{'k1'},111);
}
+
+# Keep this test last, as it can SEGV
+{
+ local *@;
+ pass("Localised *@");
+ eval {1};
+ pass("Can eval with *@ localised");
+}
+