diff options
author | David Mitchell <davem@iabyn.com> | 2015-09-02 11:00:39 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2015-09-02 13:24:07 +0100 |
commit | ebc643cee5f3ca37421efb5ec01dc07b7be2904e (patch) | |
tree | a7fdd5b313c494e5f9a9a5a8072ea0c2fd78e9e6 /t | |
parent | d055471910c2d93ba13a4eb5385fe091aaada32f (diff) | |
download | perl-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.t | 5 |
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; |