summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compile.c15
-rw-r--r--tool/mk_builtin_loader.rb5
2 files changed, 17 insertions, 3 deletions
@@ -7045,7 +7045,8 @@ iseq_builtin_function_name(const enum node_type type, const NODE *recv, ID mid)
static const char prefix[] = "__builtin_";
const size_t prefix_len = sizeof(prefix) - 1;
- if (type == NODE_CALL) {
if (recv) {
switch (nd_type(recv)) {
case NODE_VCALL:
@@ -7053,14 +7054,22 @@ iseq_builtin_function_name(const enum node_type type, const NODE *recv, ID mid)
return name;
}
break;
default: break;
}
}
- }
- else if (type == NODE_VCALL || type == NODE_FCALL) {
if (UNLIKELY(strncmp(prefix, name, prefix_len) == 0)) {
return &name[prefix_len];
}
}
return NULL;
}
@@ -113,6 +113,11 @@ def collect_builtin base, tree, name, bs, inlines, params = nil
if recv
func_name = nil
case recv.first
when :vcall
_, recv = recv
if recv.first == :@ident and recv[1] == "__builtin"