diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 84bb3a211b..38a105c172 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -433,7 +433,6 @@ pub const DeclGen = struct { if (is_signed) try writer.writeAll("(int128_t)"); if (is_neg) try writer.writeByte('-'); - assert(high > 0); try writer.print("(((uint128_t)0x{x}u<<64)", .{high}); if (low > 0) @@ -572,6 +571,11 @@ pub const DeclGen = struct { 64 => return writer.writeAll("(void *)0xaaaaaaaaaaaaaaaa"), else => unreachable, }, + .Struct => { + try writer.writeByte('('); + try dg.renderTypecast(writer, ty); + return writer.writeAll("){0xaa}"); + }, else => { // This should lower to 0xaa bytes in safe modes, and for unsafe modes should // lower to leaving variables uninitialized (that might need to be implemented diff --git a/test/behavior/eval.zig b/test/behavior/eval.zig index 9cad1c6106..e3024a3895 100644 --- a/test/behavior/eval.zig +++ b/test/behavior/eval.zig @@ -443,7 +443,6 @@ fn copyWithPartialInline(s: []u32, b: []u8) void { test "binary math operator in partially inlined function" { 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 s: [4]u32 = undefined; var b: [16]u8 = undefined; diff --git a/test/behavior/fn.zig b/test/behavior/fn.zig index 68eb730b57..7d02229ff4 100644 --- a/test/behavior/fn.zig +++ b/test/behavior/fn.zig @@ -75,7 +75,6 @@ test "return inner function which references comptime variable of outer function } test "discard the result of a function that returns a struct" { - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; diff --git a/test/behavior/for.zig b/test/behavior/for.zig index db3288a4d1..5188f02381 100644 --- a/test/behavior/for.zig +++ b/test/behavior/for.zig @@ -69,7 +69,6 @@ test "basic for loop" { if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; const expected_result = [_]u8{ 9, 8, 7, 6, 0, 1, 2, 3 } ** 3; diff --git a/test/behavior/int128.zig b/test/behavior/int128.zig index 08c6dd0e4d..f57999511c 100644 --- a/test/behavior/int128.zig +++ b/test/behavior/int128.zig @@ -46,7 +46,6 @@ test "int128" { 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_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO var buff: i128 = -1; try expect(buff < 0 and (buff + 1) == 0); diff --git a/test/behavior/slice.zig b/test/behavior/slice.zig index a9f89130a1..09d15e3ac5 100644 --- a/test/behavior/slice.zig +++ b/test/behavior/slice.zig @@ -74,8 +74,6 @@ fn assertLenIsZero(msg: []const u8) !void { } test "access len index of sentinel-terminated slice" { - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - const S = struct { fn doTheTest() !void { var slice: [:0]const u8 = "hello";