aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/c.zig10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index be69321ec6..f52d2e83cb 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -655,11 +655,11 @@ pub const DeclGen = struct {
return dg.fail("TODO: C backend: implement lowering large float values", .{});
},
.Pointer => switch (val.tag()) {
- .null_value => try writer.writeAll("NULL"),
- // Technically this should produce NULL but the integer literal 0 will always coerce
- // to the assigned pointer type. Note this is just a hack to fix warnings from ordered comparisons (<, >, etc)
- // between pointers and 0, which is an extension to begin with.
- .zero => try writer.writeByte('0'),
+ .null_value, .zero => {
+ try writer.writeAll("((");
+ try dg.renderTypecast(writer, ty);
+ try writer.writeAll(")NULL)");
+ },
.variable => {
const decl = val.castTag(.variable).?.data.owner_decl;
return dg.renderDeclValue(writer, ty, val, decl);