summaryrefslogtreecommitdiff
path: root/ext/XS-APItest/t/multicall.t
diff options
context:
space:
mode:
Diffstat (limited to 'ext/XS-APItest/t/multicall.t')
-rw-r--r--ext/XS-APItest/t/multicall.t15
1 files changed, 14 insertions, 1 deletions
diff --git a/ext/XS-APItest/t/multicall.t b/ext/XS-APItest/t/multicall.t
index 983f5fd016..f96f62e743 100644
--- a/ext/XS-APItest/t/multicall.t
+++ b/ext/XS-APItest/t/multicall.t
@@ -7,7 +7,7 @@
use warnings;
use strict;
-use Test::More tests => 6;
+use Test::More tests => 7;
use XS::APItest;
@@ -48,3 +48,16 @@ use XS::APItest;
is($destroyed, 1, "f now destroyed");
}
+
+# [perl #115602]
+# deep recursion realloced the CX stack, but the dMULTICALL local var
+# 'cx' still pointed to the old one.
+# Thius doesn;t actually test the failure (I couldn't think of a way to
+# get the failure to show at the perl level) but it allows valgribnd or
+# similar to spot any errors.
+
+{
+ sub rec { my $c = shift; rec($c-1) if $c > 0 };
+ my @r = XS::APItest::multicall_each { rec(90) } 1,2,3;
+ pass("recursion");
+}