diff options
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index b884e2fb0f..fddf33defd 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1259,17 +1259,19 @@ pub const DeclGen = struct { const bw = buffer.writer(); const elem_type = t.elemType(); - const sentinel_bit = @boolToInt(t.sentinel() != null); - const c_len = t.arrayLen() + sentinel_bit; try bw.writeAll("typedef "); try dg.renderType(bw, elem_type); const name_start = buffer.items.len + 1; - try bw.print(" zig_A_{s}_{d}", .{ typeToCIdentifier(elem_type, dg.module), c_len }); + try bw.print(" zig_A_{s}_{d}", .{ typeToCIdentifier(elem_type, dg.module), t.arrayLen() }); + if (t.sentinel()) |s| { + try bw.writeAll("_s_"); + try dg.renderValue(bw, elem_type, s, .Identifier); + } const name_end = buffer.items.len; - try bw.print("[{d}];\n", .{c_len}); + try bw.print("[{d}];\n", .{t.arrayLenIncludingSentinel()}); const rendered = buffer.toOwnedSlice(); errdefer dg.typedefs.allocator.free(rendered); |
