aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2022-10-06 04:31:18 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2022-10-25 05:11:28 -0400
commit5ae3ac9c431de65c2c075793e98a4a3257ac039e (patch)
treebaf244783495029377244087f9cc5233c853caca /src/codegen/c.zig
parentf81651932af18938fc88dc536806f3adbe5c11c4 (diff)
downloadzig-5ae3ac9c431de65c2c075793e98a4a3257ac039e.tar.gz
zig-5ae3ac9c431de65c2c075793e98a4a3257ac039e.zip
c: fix redefinition of typedef warnings
Closes #11651
Diffstat (limited to 'src/codegen/c.zig')
-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);