Commit 5ae3ac9c43

Jacob Young <jacobly0@users.noreply.github.com>
2022-10-06 10:31:18
c: fix redefinition of typedef warnings
Closes #11651
1 parent f816519
Changed files (1)
src
codegen
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);