summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2015-09-02 11:00:39 +0100
committerDavid Mitchell <davem@iabyn.com>2015-09-02 13:24:07 +0100
commitebc643cee5f3ca37421efb5ec01dc07b7be2904e (patch)
treea7fdd5b313c494e5f9a9a5a8072ea0c2fd78e9e6 /t
parentd055471910c2d93ba13a4eb5385fe091aaada32f (diff)
downloadperl-ebc643cee5f3ca37421efb5ec01dc07b7be2904e.tar.gz
pp_aassign: scan on DEBUGGING builds
At compile-time we often decide that a list assign op is safe from possible commonality (($a,$b) = ($b,$a)), and so skip the run-time mark-and-sweep commonality finder. This commit makes it always mark-and-sweep at runtime, and to panic if if finds commonality when at compile-time we had determined that there couldn't possibly be any. This commit fails the t/perf/benchmark.t test as it contains something which triggers the panic. This will be fixed in the next commit.
Diffstat (limited to 't')
-rw-r--r--t/op/aassign.t5
1 files changed, 4 insertions, 1 deletions
diff --git a/t/op/aassign.t b/t/op/aassign.t
index e73e172ed2..58650b72f3 100644
--- a/t/op/aassign.t
+++ b/t/op/aassign.t
@@ -269,7 +269,10 @@ sub sh {
# b) it's such an important usage that for performance reasons we
# mark it as safe even though it isn't really. Hence it's a TODO.
-{
+SKIP: {
+ use Config;
+ # debugging builds will detect this failure and panic
+ skip "DEBUGGING build" if $::Config{config_args} =~ /DEBUGGING/;
local $::TODO = 'cheat and optimise my (....) = @_';
local @_ = 1..3;
&f17;