summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2009-11-29 16:42:42 +0000
committerNicholas Clark <nick@ccl4.org>2009-11-29 16:42:42 +0000
commitf5fa9033b8c1fdcbd7710850b3b0380d6b937853 (patch)
tree682c655948a9531e21504131963eda26eef5954b
parenta917e5da001c2e01ede95e432a105b1aa899f1e5 (diff)
downloadperl-f5fa9033b8c1fdcbd7710850b3b0380d6b937853.tar.gz
Fix RT #70862 by converting ERRSV to GvSVn() to ensure a non-NULL GvSV().
-rw-r--r--perl.h2
-rw-r--r--t/op/eval.t17
2 files changed, 17 insertions, 2 deletions
diff --git a/perl.h b/perl.h
index bf49279e7d..2f02ba43b8 100644
--- a/perl.h
+++ b/perl.h
@@ -1310,7 +1310,7 @@ EXTERN_C char *crypt(const char *, const char *);
# define SS_NORMAL 0
#endif
-#define ERRSV GvSV(PL_errgv)
+#define ERRSV GvSVn(PL_errgv)
#ifdef PERL_CORE
# define DEFSV (0 + GvSVn(PL_defgv))
#else
diff --git a/t/op/eval.t b/t/op/eval.t
index 071b2fa05c..4daf0b96e1 100644
--- a/t/op/eval.t
+++ b/t/op/eval.t
@@ -6,7 +6,7 @@ BEGIN {
require './test.pl';
}
-print "1..99\n";
+print "1..101\n";
eval 'print "ok 1\n";';
@@ -557,3 +557,18 @@ $test++;
print "ok $test - RT 63110\n";
$test++;
}
+
+curr_test($test);
+
+fresh_perl_is(<<'EOP', "ok\n", undef, 'RT #70862');
+$::{'@'}='';
+eval {};
+print "ok\n";
+EOP
+
+fresh_perl_is(<<'EOP', "ok\n", undef, 'variant of RT #70862');
+eval {
+ $::{'@'}='';
+};
+print "ok\n";
+EOP