authorgravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-11-11 14:26:44-05:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-11-11 11:36:26-08:00
log08d6876d20303458a4a108300d5a2492e8bd7856
tree225cad31ec259f712cf1a7149f67ffdd1804314f
parent19e56638694dddf1b9137a352abf31df7952c5eb

c codegen: fix airIsNull with pointers


1 files changed, 4 insertions(+), 1 deletions(-)

src/codegen/c.zig+4-1
...@@ -2165,7 +2165,10 @@ fn airIsNull(...@@ -2165,7 +2165,10 @@ fn airIsNull(
21652165
2166 const ty = f.air.typeOf(un_op);2166 const ty = f.air.typeOf(un_op);
2167 var opt_buf: Type.Payload.ElemType = undefined;2167 var opt_buf: Type.Payload.ElemType = undefined;
2168 const payload_type = ty.optionalChild(&opt_buf);2168 const payload_type = if (ty.zigTypeTag() == .Pointer)
2169 ty.childType().optionalChild(&opt_buf)
2170 else
2171 ty.optionalChild(&opt_buf);
21692172
2170 if (ty.isPtrLikeOptional()) {2173 if (ty.isPtrLikeOptional()) {
2171 // operand is a regular pointer, test `operand !=/== NULL`2174 // operand is a regular pointer, test `operand !=/== NULL`