zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 63ae7899ae6803ba8113ed3176877c864ce889df (tree)
parent 71038c42f554da86ee23c9c448d39e457d5818eb
Author: Veikka Tuominen <git@vexu.eu>
Date:   Sun, 27 Nov 2022 16:50:35 +0200

cbe: ensure test and tagName function names are unique

Diffstat:
Msrc/codegen/c.zig | 9+++++++--
Mtest/behavior/basic.zig | 1-
Mtest/behavior/bugs/13064.zig | 1-
Mtest/behavior/bugs/13065.zig | 1-
Mtest/behavior/bugs/13069.zig | 1-
Mtest/behavior/enum.zig | 1-
Mtest/behavior/math.zig | 3---
7 files changed, 7 insertions(+), 10 deletions(-)

diff --git 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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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