Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: b1397c41ce94cb29316deeafcbc449e9a30ed358
      
https://github.com/Perl/perl5/commit/b1397c41ce94cb29316deeafcbc449e9a30ed358
  Author: Richard Leach <richardle...@users.noreply.github.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M peep.c
    M t/op/substr_left.t
    M t/perf/opcount.t

  Log Message:
  -----------
  OP_SUBSTR_LEFT: GH#22914 - multiple pointers to replacement OP

The recent initial commit for OP_SUBSTR_LEFT failed to account for
there being multiple paths from a non-trivial LENGTH to the ""
replacement CONST OP. This could result in the replacement SV
being erroneously pushed to the stack, causing `pp_substr_left`
to try to operate on the wrong SV.

This commit nulls out the replacement OP, so that even if it
is encountered, no erroneous SV is pushed. Contrary to the
comment in the original commit, this actually does not break
B::Deparse.

Thanks to @mauke for figuring this out and preparing a patch
before I'd even opened my browser.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to