aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorJacob G-W <jacoblevgw@gmail.com>2021-11-11 14:26:44 -0500
committerJakub Konka <kubkon@jakubkonka.com>2021-11-11 11:36:26 -0800
commit08d6876d20303458a4a108300d5a2492e8bd7856 (patch)
tree225cad31ec259f712cf1a7149f67ffdd1804314f /src/codegen
parent19e56638694dddf1b9137a352abf31df7952c5eb (diff)
downloadzig-08d6876d20303458a4a108300d5a2492e8bd7856.tar.gz
zig-08d6876d20303458a4a108300d5a2492e8bd7856.zip
c codegen: fix airIsNull with pointers
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/c.zig5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index 16828ecb82..c00b0247bb 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -2165,7 +2165,10 @@ fn airIsNull(
const ty = f.air.typeOf(un_op);
var opt_buf: Type.Payload.ElemType = undefined;
- const payload_type = ty.optionalChild(&opt_buf);
+ const payload_type = if (ty.zigTypeTag() == .Pointer)
+ ty.childType().optionalChild(&opt_buf)
+ else
+ ty.optionalChild(&opt_buf);
if (ty.isPtrLikeOptional()) {
// operand is a regular pointer, test `operand !=/== NULL`