diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-27 16:50:35 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-30 15:14:33 +0200 |
| commit | 63ae7899ae6803ba8113ed3176877c864ce889df (patch) | |
| tree | c88732bd93fa84cd4e197d1bb32a9bb74d7551f2 /src/codegen | |
| parent | 71038c42f554da86ee23c9c448d39e457d5818eb (diff) | |
| download | zig-63ae7899ae6803ba8113ed3176877c864ce889df.tar.gz zig-63ae7899ae6803ba8113ed3176877c864ce889df.zip | |
cbe: ensure test and tagName function names are unique
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 304728b602..0b9a4ef4fc 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1961,7 +1961,7 @@ pub const DeclGen = struct { try buffer.appendSlice("static "); try dg.renderType(bw, name_slice_ty, .Complete); const name_begin = buffer.items.len + " ".len; - try bw.print(" zig_tagName_{}(", .{typeToCIdentifier(enum_ty, dg.module)}); + try bw.print(" zig_tagName_{}_{d}(", .{ typeToCIdentifier(enum_ty, dg.module), @enumToInt(enum_ty.getOwnerDecl()) }); const name_end = buffer.items.len - "(".len; try dg.renderTypeAndName(bw, enum_ty, .{ .identifier = "tag" }, .Const, 0, .Complete); try buffer.appendSlice(") {\n switch (tag) {\n"); @@ -2111,11 +2111,16 @@ pub const DeclGen = struct { return writer.writeAll(exports.items[0].options.name); } else if (decl.isExtern()) { return writer.writeAll(mem.sliceTo(decl.name, 0)); + } else if (dg.module.test_functions.get(decl_index)) |_| { + const gpa = dg.gpa; + const name = try decl.getFullyQualifiedName(dg.module); + defer gpa.free(name); + return writer.print("{}_{d}", .{ fmtIdent(name), @enumToInt(decl_index) }); } else { const gpa = dg.gpa; const name = try decl.getFullyQualifiedName(dg.module); defer gpa.free(name); - return writer.print("{ }", .{fmtIdent(name)}); + return writer.print("{}", .{fmtIdent(name)}); } } |
