diff options
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 71a0869046..71714cc1b8 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1006,11 +1006,15 @@ fn airLoad(o: *Object, inst: Air.Inst.Index) !CValue { fn airRet(o: *Object, inst: Air.Inst.Index) !CValue { const un_op = o.air.instructions.items(.data)[inst].un_op; - const operand = try o.resolveInst(un_op); const writer = o.writer(); - try writer.writeAll("return "); - try o.writeCValue(writer, operand); - try writer.writeAll(";\n"); + if (o.air.typeOf(un_op).hasCodeGenBits()) { + const operand = try o.resolveInst(un_op); + try writer.writeAll("return "); + try o.writeCValue(writer, operand); + try writer.writeAll(";\n"); + } else { + try writer.writeAll("return;\n"); + } return CValue.none; } |
