[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