summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2021-05-31 21:57:56 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2021-05-31 21:57:57 -0700
commit2209e152c0ec2c0548c22b2b14e52007b74a9efb (patch)
treea120cc93e7100fb701d5de82c4062ed6bd44dd48 /tool
parente9e3b65d836b5796882b5bf28717e4586366ceec (diff)
Decompose the captured_cc code for investigation
I'm investigating SEGVs like https://github.com/ruby/ruby/runs/2715166621?check_suite_focus=true. Because a lot of things are going on on this line, it's hard to identify the cause, especially because we can't get the core file of the failures. Therefore I intentionally increased the number of lines for investigation.
Diffstat (limited to 'tool')
-rw-r--r--tool/ruby_vm/views/_mjit_compile_send.erb4
1 files changed, 3 insertions, 1 deletions
diff --git a/tool/ruby_vm/views/_mjit_compile_send.erb b/tool/ruby_vm/views/_mjit_compile_send.erb
index d1540f69bb..28e316a1ef 100644
--- a/tool/ruby_vm/views/_mjit_compile_send.erb
+++ b/tool/ruby_vm/views/_mjit_compile_send.erb
@@ -13,7 +13,9 @@
MAYBE_UNUSED(<%= ope.fetch(:decl) %>) = (<%= ope.fetch(:type) %>)operands[<%= i %>];
% end
% # compiler: Use captured cc to avoid race condition
- const struct rb_callcache *captured_cc = captured_cc_entries(status)[call_data_index(cd, body)];
+ size_t cd_index = call_data_index(cd, body);
+ const struct rb_callcache **cc_entries = captured_cc_entries(status);
+ const struct rb_callcache *captured_cc = cc_entries[cd_index];
%
% # compiler: Inline send insn where some supported fastpath is used.
const rb_iseq_t *iseq = NULL;