diff --git a/cl/instr.go b/cl/instr.go index 34e9c65a..9a39b7e4 100644 --- a/cl/instr.go +++ b/cl/instr.go @@ -151,14 +151,13 @@ func (p *context) asm(b llssa.Builder, args []ssa.Value) (ret llssa.Expr) { log.Printf("asm: %q -> %q, constraints: %q", asmString, finalAsm, constraintStr) } - var retType llssa.Type - if hasOutput { - retType = b.Prog.Uintptr() - } else { - retType = b.Prog.Void() + if !hasOutput { + // Make sure we return something valid + b.InlineAsmFull(finalAsm, constraintStr, b.Prog.Void(), inputValues) + return b.Prog.Val((uintptr(0))) } - return b.InlineAsmFull(finalAsm, constraintStr, retType, inputValues) + return b.InlineAsmFull(finalAsm, constraintStr, b.Prog.Uintptr(), inputValues) } // -----------------------------------------------------------------------------