From 76a0e81f409baf810411677e115bce4f4b05ba5e Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Tue, 20 Sep 2022 07:38:18 +0900 Subject: Support trailing commas in builtin `foo(Primitive.cexpr!('Qnil'),)` causes SEGV without this change. --- tool/mk_builtin_loader.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'tool/mk_builtin_loader.rb') diff --git a/tool/mk_builtin_loader.rb b/tool/mk_builtin_loader.rb index 784dd30dc1..c5bbd79a80 100644 --- a/tool/mk_builtin_loader.rb +++ b/tool/mk_builtin_loader.rb @@ -87,7 +87,7 @@ def collect_builtin base, tree, name, bs, inlines, locals = nil tree = tree[2] next when :method_add_arg - _, mid, (_, (_, args)) = tree + _method_add_arg, mid, (_arg_paren, args) = tree case mid.first when :call _, recv, sep, mid = mid @@ -96,6 +96,11 @@ def collect_builtin base, tree, name, bs, inlines, locals = nil else mid = nil end + # w/ trailing comma: [[:method_add_arg, ...]] + # w/o trailing comma: [:args_add_block, [[:method_add_arg, ...]]] + if args && args.first == :args_add_block + args = args[1] + end when :vcall _, mid = tree when :command # FCALL -- cgit v1.2.1