Check region before use it.
Fixes #60215 https://github.com/llvm/llvm-project/issues/60215
Differential Revision: https://reviews.llvm.org/D142544
Operation *callableOp = call.resolveCallable(&symbolTable);
if (auto callable = dyn_cast_or_null<CallableOpInterface>(callableOp)) {
Region *region = callable.getCallableRegion();
- if (!region->empty()) {
+ if (region && !region->empty()) {
Block &block = region->front();
for (auto [blockArg, operand] :
llvm::zip(block.getArguments(), operandLattices)) {
memref.store %1, %m0[] {tag_name = "b"} : memref<i32>
return
}
+
+// -----
+
+// CHECK-LABEL: llvm.func @decl(i64)
+// CHECK-LABEL: llvm.func @func(%arg0: i64) {
+// CHECK-NEXT: llvm.call @decl(%arg0) : (i64) -> ()
+// CHECK-NEXT: llvm.return
+
+llvm.func @decl(i64)
+
+llvm.func @func(%lb : i64) -> () {
+ llvm.call @decl(%lb) : (i64) -> ()
+ llvm.return
+}