From 63ae7899ae6803ba8113ed3176877c864ce889df Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Sun, 27 Nov 2022 16:50:35 +0200 Subject: [PATCH] cbe: ensure test and tagName function names are unique --- src/codegen/c.zig | 9 +++++++-- test/behavior/basic.zig | 1 - test/behavior/bugs/13064.zig | 1 - test/behavior/bugs/13065.zig | 1 - test/behavior/bugs/13069.zig | 1 - test/behavior/enum.zig | 1 - test/behavior/math.zig | 3 --- 7 files changed, 7 insertions(+), 10 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)}); } } diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index 3fc1cda04d..8a815ecb7b 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -739,7 +739,6 @@ test "thread local variable" { } test "result location is optional inside error union" { - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO diff --git a/test/behavior/bugs/13064.zig b/test/behavior/bugs/13064.zig index 928e9b2aa7..b847276a90 100644 --- a/test/behavior/bugs/13064.zig +++ b/test/behavior/bugs/13064.zig @@ -5,7 +5,6 @@ const expect = std.testing.expect; test { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO var x: [10][10]u32 = undefined; diff --git a/test/behavior/bugs/13065.zig b/test/behavior/bugs/13065.zig index cad1718e0b..c6a0053ac7 100644 --- a/test/behavior/bugs/13065.zig +++ b/test/behavior/bugs/13065.zig @@ -10,7 +10,6 @@ const U = union(enum) { test { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO var x = U{ .array = undefined }; diff --git a/test/behavior/bugs/13069.zig b/test/behavior/bugs/13069.zig index 8872f8a566..48a3184566 100644 --- a/test/behavior/bugs/13069.zig +++ b/test/behavior/bugs/13069.zig @@ -6,7 +6,6 @@ test { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO var opt_x: ?[3]f32 = [_]f32{0.0} ** 3; diff --git a/test/behavior/enum.zig b/test/behavior/enum.zig index a6e417f2ae..8432ee0b8d 100644 --- a/test/behavior/enum.zig +++ b/test/behavior/enum.zig @@ -1101,7 +1101,6 @@ test "enum literal in array literal" { } test "tag name functions are unique" { - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; diff --git a/test/behavior/math.zig b/test/behavior/math.zig index 17a4c5e64b..4b6b882fe5 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -315,8 +315,6 @@ test "comptime_int multi-limb partial shift right" { } test "xor" { - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - try test_xor(); comptime try test_xor(); } @@ -572,7 +570,6 @@ fn testShrTrunc(x: u16) !void { } test "f128" { - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO