From: Jakub Kuderski Date: Mon, 24 Apr 2023 17:56:21 +0000 (-0400) Subject: [mlir][spirv] Fix OOB error in TestModuleCombiner X-Git-Tag: upstream/17.0.6~10597 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f4cd963a6e820b50514706a1a3faed3a05779a2;p=platform%2Fupstream%2Fllvm.git [mlir][spirv] Fix OOB error in TestModuleCombiner Also fix a typo in the surrounding code. Fixes: https://github.com/llvm/llvm-project/issues/62318 Reviewed By: qedawkins Differential Revision: https://reviews.llvm.org/D149069 --- diff --git a/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp b/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp index 3083bb8d8ce6..1f708c2ae37a 100644 --- a/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp +++ b/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp @@ -28,7 +28,7 @@ using namespace mlir; static constexpr unsigned maxFreeID = 1 << 20; -/// Returns an unsed symbol in `module` for `oldSymbolName` by trying numeric +/// Returns an unused symbol in `module` for `oldSymbolName` by trying numeric /// suffix in `lastUsedID`. static StringAttr renameSymbol(StringRef oldSymName, unsigned &lastUsedID, spirv::ModuleOp module) { diff --git a/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir b/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir index f9d46656358c..4aed260420ae 100644 --- a/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir +++ b/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir @@ -77,3 +77,11 @@ spirv.module Logical GLSL450 requires #spirv.vce i32 { + return %arg0 : i32 + } +} diff --git a/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp b/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp index 56a2d1d3fdc4..3f5f094ed3af 100644 --- a/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp +++ b/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp @@ -34,6 +34,8 @@ public: void TestModuleCombinerPass::runOnOperation() { auto modules = llvm::to_vector<4>(getOperation().getOps()); + if (modules.empty()) + return; OpBuilder combinedModuleBuilder(modules[0]);