Currently crashes if function isn't void when specifiying
'-entry-point-result=void'.
Reviewed By: jpienaar
Differential Revision: https://reviews.llvm.org/D154352
SymbolTable::lookupSymbolIn(module, entryPoint));
if (!mainFunction || mainFunction.empty())
return makeStringError("entry point not found");
+
+ auto resultType = dyn_cast<LLVM::LLVMVoidType>(
+ mainFunction.getFunctionType().getReturnType());
+ if (!resultType)
+ return makeStringError("expected void function");
+
void *empty = nullptr;
return compileAndExecute(options, module, entryPoint, std::move(config),
&empty, std::move(tm));
--- /dev/null
+// RUN: not mlir-cpu-runner %s -e entry -entry-point-result=void 2>&1 | FileCheck %s
+
+// CHECK: Error: expected void function
+llvm.func @entry() -> (i32) {
+ %0 = llvm.mlir.constant(0 : index) : i32
+ llvm.return %0 : i32
+}