diff options
-rw-r--r-- | yjit/src/codegen.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index 869c93fdbb..64f2d6e654 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -4288,6 +4288,9 @@ fn jit_rb_str_concat( // Guard that the argument is of class String at runtime. let arg_type = ctx.get_opnd_type(StackOpnd(0)); + // Guard buffers from GC since rb_str_buf_append may allocate. + gen_save_sp(asm, ctx); + let concat_arg = ctx.stack_pop(1); let recv = ctx.stack_pop(1); |