This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix assert fail with my $x; sub() {$x}
authorFather Chrysostomos <sprout@cpan.org>
Mon, 17 Nov 2014 02:23:34 +0000 (18:23 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Mon, 17 Nov 2014 02:23:34 +0000 (18:23 -0800)
commit82e85a9ce986972c02dda51b9fa63d84843ec468
tree6df344d8c3c8659f9d7d11250dc79c36187bf691
parentc263379c498269adb3a24d6d48aec4e822fde5c7
Fix assert fail with my $x; sub() {$x}

If $x is not referenced or used in lvalue context elsewhere, then the
constant sub can actually share the same scalar as the enclosing sub’s
pad.  It doesn’t need to copy.  And we don’t in that case, as of
v5.21.5-421-g04472a8.  But we need to make sure the PADTMP flag is
turned off at scope exit if the pad has the only reference to the sub.
(The PADTMP flag has been turned on as of v5.21.5-391-g5543332.)
scope.c
t/op/const-optree.t