diff --git a/libspu/core/context.h b/libspu/core/context.h index 2cc5ce77..e174a872 100644 --- a/libspu/core/context.h +++ b/libspu/core/context.h @@ -208,7 +208,10 @@ Ret dynDispatch(SPUContext* sctx, const std::string& name, Args&&... args) { kernel->evaluate(&ectx); // 4. steal the result and return it. - return ectx.consumeOutput(0); + if (ectx.numOutputs() > 0) { + return ectx.consumeOutput(0); + } + return Ret(); } // helper class diff --git a/libspu/mpc/semi2k/arithmetic.cc b/libspu/mpc/semi2k/arithmetic.cc index 653047b7..90591da6 100644 --- a/libspu/mpc/semi2k/arithmetic.cc +++ b/libspu/mpc/semi2k/arithmetic.cc @@ -494,6 +494,8 @@ void BeaverCacheKernel::evaluate(KernelEvalContext* ctx) const { beaver_cache->DisableCache(v.imag().value()); } } + // dummy output + ctx->pushOutput(Value()); } } // namespace spu::mpc::semi2k