[mlir][llvm] Don't return a dangling reference in getCallableResults().
authorJohannes de Fine Licht <johannes.definelicht@nextsilicon.com>
Tue, 25 Oct 2022 12:52:59 +0000 (15:52 +0300)
committerTobias Gysi <tobias.gysi@nextsilicon.com>
Tue, 25 Oct 2022 13:05:33 +0000 (16:05 +0300)
Use the `getReturnTypes()` API (which returns an `ArrayRef<Type>`)
rather than the `getReturnType()` API (which returns a `Type`) to avoid
returning a dangling reference in `LLVMFuncOp::getCallableResults()`.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D136669

mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td

index 18b7083..bcf55e1 100644 (file)
@@ -1341,7 +1341,7 @@ def LLVM_LLVMFuncOp : LLVM_Op<"func", [
     Region *getCallableRegion() { return &getBody(); }
 
     /// Returns the callable result type, which is the function return type.
-    ArrayRef<Type> getCallableResults() { return getFunctionType().getReturnType(); }
+    ArrayRef<Type> getCallableResults() { return getFunctionType().getReturnTypes(); }
 
   }];