From fb8c08d4acec2ec0d9f06862276cfd6c1c32cd7f Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 1 Nov 2022 01:28:17 -0400 Subject: cbe: disambiguate struct typedefs with decl index --- src/codegen/c.zig | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/codegen/c.zig') diff --git a/src/codegen/c.zig b/src/codegen/c.zig index f05475a968..8bcb485e84 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1297,7 +1297,8 @@ pub const DeclGen = struct { var fqn_buf = std.ArrayList(u8).init(dg.typedefs.allocator); defer fqn_buf.deinit(); - const owner_decl = dg.module.declPtr(child_ty.getOwnerDecl()); + const owner_decl_index = child_ty.getOwnerDecl(); + const owner_decl = dg.module.declPtr(owner_decl_index); try owner_decl.renderFullyQualifiedName(dg.module, fqn_buf.writer()); var buffer = std.ArrayList(u8).init(dg.typedefs.allocator); @@ -1309,7 +1310,11 @@ pub const DeclGen = struct { else => unreachable, }; const name_begin = buffer.items.len + "typedef ".len + tag.len; - try buffer.writer().print("typedef {s}zig_S_{} ", .{ tag, fmtIdent(fqn_buf.items) }); + try buffer.writer().print("typedef {s}zig_S_{}__{d} ", .{ + tag, + fmtIdent(fqn_buf.items), + @enumToInt(owner_decl_index), + }); const name_end = buffer.items.len - " ".len; try buffer.ensureUnusedCapacity((name_end - name_begin) + ";\n".len); buffer.appendSliceAssumeCapacity(buffer.items[name_begin..name_end]); -- cgit v1.2.3