aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/c.zig10
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);