[Mlir-commits] [mlir] fddf543 - [MLIR][GPUToSPIRV] Fix use-after-free. Found by asan.
Benjamin Kramer
llvmlistbot at llvm.org
Thu Aug 27 08:59:02 PDT 2020
Author: Benjamin Kramer
Date: 2020-08-27T17:57:11+02:00
New Revision: fddf543e6e01cb72ec1af48c5dd82c525bd3e47a
URL: https://github.com/llvm/llvm-project/commit/fddf543e6e01cb72ec1af48c5dd82c525bd3e47a
DIFF: https://github.com/llvm/llvm-project/commit/fddf543e6e01cb72ec1af48c5dd82c525bd3e47a.diff
LOG: [MLIR][GPUToSPIRV] Fix use-after-free. Found by asan.
Added:
Modified:
mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp b/mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
index 9fe35693bfe2..f4273a44bb9c 100644
--- a/mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
+++ b/mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
@@ -288,10 +288,10 @@ LogicalResult GPUModuleConversion::matchAndRewrite(
"based on 'spv.target_env'");
// Add a keyword to the module name to avoid symbolic conflict.
- auto spvModuleName = StringRef(kSPIRVModule + moduleOp.getName().str());
- auto spvModule =
- rewriter.create<spirv::ModuleOp>(moduleOp.getLoc(), addressingModel,
- memoryModel.getValue(), spvModuleName);
+ std::string spvModuleName = (kSPIRVModule + moduleOp.getName()).str();
+ auto spvModule = rewriter.create<spirv::ModuleOp>(
+ moduleOp.getLoc(), addressingModel, memoryModel.getValue(),
+ StringRef(spvModuleName));
// Move the region from the module op into the SPIR-V module.
Region &spvModuleRegion = spvModule.body();
More information about the Mlir-commits
mailing list