[perl #124160] Disable targlex for state var init
authorFather Chrysostomos <sprout@cpan.org>
Thu, 26 Mar 2015 05:55:20 +0000 (22:55 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 26 Mar 2015 05:55:20 +0000 (22:55 -0700)
commitada289e74406815f75328d011e5521339169abe7
treeea2518aac71cf995b66ea0019ed7d9f475b5bc35
parentaab1202a8d4b691b16384fb41d2e2a06abf664e2
[perl #124160] Disable targlex for state var init

The targlex optimisation optimises away an assignment to a lexical
variable, having the operator on the rhs write directly to the lexi-
cal itself.  This optimisation has a bug in it (#101640) that causes
$lex = "a $b c" to stringify the result, instead of allowing con-
cat overloding to return something other than a string.  I extended
the optimisation to occur with state variable initialization, in
v5.21.5-366-ga1b22ab, not realising it would make an existing bug
occur more often.  For now, just disable the new optimisation.
op.c
t/opbasic/concat.t