| ... | @@ -477,8 +477,14 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { | ... | @@ -477,8 +477,14 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { |
| 477 | var it = proto_node.params.iterator(0); | 477 | var it = proto_node.params.iterator(0); |
| 478 | while (it.next()) |p| { | 478 | while (it.next()) |p| { |
| 479 | const param = @fieldParentPtr(ast.Node.ParamDecl, "base", p.*); | 479 | const param = @fieldParentPtr(ast.Node.ParamDecl, "base", p.*); |
| 480 | const param_name = tokenSlice(c, param.name_token orelse | 480 | const param_name = if (param.name_token) |name_tok| |
| 481 | return failDecl(c, fn_decl_loc, fn_name, "function {} parameter has no name", .{fn_name})); | 481 | tokenSlice(c, name_tok) |
| | 482 | else if (param.var_args_token != null) { |
| | 483 | assert(it.next() == null); |
| | 484 | _ = proto_node.params.pop(); |
| | 485 | break; |
| | 486 | } else |
| | 487 | return failDecl(c, fn_decl_loc, fn_name, "function {} parameter has no name", .{fn_name}); |
| 482 | | 488 | |
| 483 | const mangled_param_name = try block_scope.makeMangledName(c, param_name); | 489 | const mangled_param_name = try block_scope.makeMangledName(c, param_name); |
| 484 | | 490 | |