Checking ractor_shareable_p will cause the method to call back into Ruby. Anything calling this method can't be a leaf instruction, otherwise it could crash. By adding attr bool leaf = false we no longer crash because it marks the function as not a leaf.
[Bug #17880] Set leaf false on opt_setinlinecache (#4565)
This change fixes the bug described in https://bugs.ruby-lang.org/issues/17880.
Checking
ractor_shareable_pwill cause the method to call back intoRuby. Anything calling this method can't be a leaf instruction,
otherwise it could crash. By adding
attr bool leaf = falsewe nolonger crash because it marks the function as not a leaf.
Here's a simplified reproduction script:
Co-authored-by: Aaron Patterson tenderlove@ruby-lang.org
Co-authored-by: Aaron Patterson tenderlove@ruby-lang.org