[clang] 01d59c0 - [OpenMP]Fix PR50336: Remove temporary files in the offload bundler tool

via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 11 05:50:57 PDT 2021


Author: Joseph Huber
Date: 2021-08-11T08:50:47-04:00
New Revision: 01d59c0de822099c62f12f275c41338f6df9f5ac

URL: https://github.com/llvm/llvm-project/commit/01d59c0de822099c62f12f275c41338f6df9f5ac
DIFF: https://github.com/llvm/llvm-project/commit/01d59c0de822099c62f12f275c41338f6df9f5ac.diff

LOG: [OpenMP]Fix PR50336: Remove temporary files in the offload bundler tool

Temporary files created by the offloading device toolchain are not removed
after compilation when using a two-step compilation. The offload-bundler uses a
different filename for the device binary than the `.o` file present in the
Job's input list. This is not listed as a temporary file so it is never
removed. This patch explicitly adds the device binary as a temporary file to
consume it. This fixes PR50336.

Reviewed By: jdoerfert

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

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/Clang.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 956b31e18ef8..ceeae94e5667 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -7737,8 +7737,11 @@ void OffloadBundler::ConstructJob(Compilation &C, const JobAction &JA,
         assert(CurTC == nullptr && "Expected one dependence!");
         CurTC = TC;
       });
+      UB += C.addTempFile(
+          C.getArgs().MakeArgString(CurTC->getInputFilename(Inputs[I])));
+    } else {
+      UB += CurTC->getInputFilename(Inputs[I]);
     }
-    UB += CurTC->getInputFilename(Inputs[I]);
   }
   CmdArgs.push_back(TCArgs.MakeArgString(UB));
 


        


More information about the cfe-commits mailing list