authorgravatar for evan@lagerdata.comEvan Haas <evan@lagerdata.com> 2024-07-30 10:52:33-07:00
committergravatar for evan@lagerdata.comEvan Haas <evan@lagerdata.com> 2024-07-31 09:35:07-07:00
log236567de8d7706b7a6c529670a1a15f4c8b9f95e
treed0b1488165f35757a6592933b87cf18424021233
parenta69d403cb2c82ce6257bfa1ee7eba52f895c14e7
signaturebadge-check Signed by SSH key SHA256:cf2/TFgSxv2uRX26INvFSw25Prr1Dy9H8MiRXgLpok4

aro_translate_c: Emit compile errors instead of panicking for var decls


1 files changed, 5 insertions(+), 3 deletions(-)

lib/compiler/aro_translate_c.zig+5-3
......@@ -304,7 +304,7 @@ fn transDecl(c: *Context, scope: *Scope, decl: NodeIndex) !void {
304304 .threadlocal_extern_var,
305305 .threadlocal_static_var,
306306 => {
307 try transVarDecl(c, decl, null);
307 try transVarDecl(c, decl);
308308 },
309309 .static_assert => try warn(c, &c.global_scope.base, 0, "ignoring _Static_assert declaration", .{}),
310310 else => unreachable,
......@@ -566,8 +566,10 @@ fn transFnDecl(c: *Context, fn_decl: NodeIndex) Error!void {
566566 return addTopLevelDecl(c, fn_name, proto_node);
567567}
568568
569fn transVarDecl(_: *Context, _: NodeIndex, _: ?usize) Error!void {
570 @panic("TODO");
569fn transVarDecl(c: *Context, node: NodeIndex) Error!void {
570 const data = c.tree.nodes.items(.data)[@intFromEnum(node)];
571 const name = c.tree.tokSlice(data.decl.name);
572 return failDecl(c, data.decl.name, name, "unable to translate variable declaration", .{});
571573}
572574
573575fn transEnumDecl(c: *Context, scope: *Scope, enum_decl: NodeIndex, field_nodes: []const NodeIndex) Error!void {