Reset the roProp field of the MInstrState
commit070ad6284d040a8db42507c4091e8a49efaadcfb
authorKaty Voor <voork@fb.com>
Wed, 29 Sep 2021 11:20:17 +0000 (29 04:20 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Wed, 29 Sep 2021 11:23:00 +0000 (29 04:23 -0700)
treeb74d520782eb6f323a2b8231734af77584fcab2a
parent89aef370651386aeffbf7d928c8f4a59ce9a933c
Reset the roProp field of the MInstrState

Summary:
We need to reset the roProp field of the MInstrState for each new member op sequence.
- Reset to false on Base before we might modify it. Note: we store false prior to functions that might store true to the roProp field. These stores should be elided during store elimination once these mutations are implemented as explicit `StMROProp` in the next diff.
BaseL/BaseSC/BaseG/BaseH/BaseC

**Note:** I won't land this diff until the full stack of diffs shows these stores are eliminated in cases we don't enforce readonly.

Reviewed By: ricklavoie

Differential Revision: D31091984

fbshipit-source-id: debec21b01ecf0c0e98bdf3262364554ce92c533
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/jit/irgen-minstr.cpp
hphp/test/slow/readonly/basesc_unset_cow.php
hphp/test/slow/readonly/basesc_unset_cow.php.expectf
hphp/test/slow/readonly/warning/basesc_unset_cow.php
hphp/test/slow/readonly/warning/basesc_unset_cow.php.expectf
hphp/test/slow/readonly/warning/prop_cow.php