summaryrefslogtreecommitdiff
path: root/t/op/defer.t
diff options
context:
space:
mode:
Diffstat (limited to 't/op/defer.t')
-rw-r--r--t/op/defer.t13
1 files changed, 12 insertions, 1 deletions
diff --git a/t/op/defer.t b/t/op/defer.t
index c651312cb5..fd712d9c66 100644
--- a/t/op/defer.t
+++ b/t/op/defer.t
@@ -6,7 +6,7 @@ BEGIN {
set_up_inc('../lib');
}
-plan 26;
+plan 28;
use feature 'defer';
no warnings 'experimental::defer';
@@ -251,6 +251,17 @@ no warnings 'experimental::defer';
like($e, qr/^Oopsie \d\n/, 'defer block can throw exception during exception unwind');
}
+# goto
+{
+ ok(defined eval 'sub { defer { goto HERE; HERE: 1; } }',
+ 'goto forwards within defer {} is permitted') or
+ diag("Failure was $@");
+
+ ok(defined eval 'sub { defer { HERE: 1; goto HERE; } }',
+ 'goto backwards within defer {} is permitted') or
+ diag("Failure was $@");
+}
+
{
my $sub = sub {
while(1) {