| ... | @@ -406,7 +406,9 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { | ... | @@ -406,7 +406,9 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { |
| 406 | var it = proto_node.params.iterator(0); | 406 | var it = proto_node.params.iterator(0); |
| 407 | while (it.next()) |p| { | 407 | while (it.next()) |p| { |
| 408 | const param = @fieldParentPtr(ast.Node.ParamDecl, "base", p.*); | 408 | const param = @fieldParentPtr(ast.Node.ParamDecl, "base", p.*); |
| 409 | const param_name = tokenSlice(c, param.name_token.?); | 409 | const param_name = tokenSlice(c, param.name_token orelse |
| | 410 | return failDecl(c, fn_decl_loc, fn_name, "function {} parameter has no name", .{fn_name}) |
| | 411 | ); |
| 410 | | 412 | |
| 411 | const checked_param_name = if (try scope.createAlias(rp.c, param_name)) |a| blk: { | 413 | const checked_param_name = if (try scope.createAlias(rp.c, param_name)) |a| blk: { |
| 412 | try block_scope.variables.push(.{ .name = param_name, .alias = a }); | 414 | try block_scope.variables.push(.{ .name = param_name, .alias = a }); |
| ... | @@ -4387,8 +4389,8 @@ fn parseCPrimaryExpr(rp: RestorePoint, it: *ctok.TokenList.Iterator, source_loc: | ... | @@ -4387,8 +4389,8 @@ fn parseCPrimaryExpr(rp: RestorePoint, it: *ctok.TokenList.Iterator, source_loc: |
| 4387 | rp, | 4389 | rp, |
| 4388 | error.UnsupportedTranslation, | 4390 | error.UnsupportedTranslation, |
| 4389 | source_loc, | 4391 | source_loc, |
| 4390 | "unable to translate C expr", | 4392 | "unable to translate C expr, unexpected token: {}", |
| 4391 | .{}, | 4393 | .{tok.id}, |
| 4392 | ), | 4394 | ), |
| 4393 | } | 4395 | } |
| 4394 | } | 4396 | } |
| ... | @@ -4473,10 +4475,17 @@ fn parseCSuffixOpExpr(rp: RestorePoint, it: *ctok.TokenList.Iterator, source_loc | ... | @@ -4473,10 +4475,17 @@ fn parseCSuffixOpExpr(rp: RestorePoint, it: *ctok.TokenList.Iterator, source_loc |
| 4473 | call_node.rtoken = try appendToken(rp.c, .RParen, ")"); | 4475 | call_node.rtoken = try appendToken(rp.c, .RParen, ")"); |
| 4474 | node = &call_node.base; | 4476 | node = &call_node.base; |
| 4475 | }, | 4477 | }, |
| 4476 | else => { | 4478 | .Eof => { |
| 4477 | _ = it.prev(); | 4479 | _ = it.prev(); |
| 4478 | return node; | 4480 | return node; |
| 4479 | }, | 4481 | }, |
| | 4482 | else => return revertAndWarn( |
| | 4483 | rp, |
| | 4484 | error.UnsupportedTranslation, |
| | 4485 | source_loc, |
| | 4486 | "unable to translate C expr, unexpected token: {}", |
| | 4487 | .{tok.id}, |
| | 4488 | ), |
| 4480 | } | 4489 | } |
| 4481 | } | 4490 | } |
| 4482 | } | 4491 | } |