Author: Joseph Huber
Date: 2022-06-22T09:39:23-04:00
New Revision: a9fd8b911331dad1b5f94e3aba5ce0927e632ade

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

LOG: [LinkerWrapper] Fix calls to deleted Error constructor on older compilers

Summary:
A recent patch added some new code paths to the linker wrapper. Older
compilers seem to have problems with returning errors wrapped in
an Excepted type without explicitly moving them. This caused failures in
some of the buildbots. This patch fixes that.

Added: 
    

Modified: 
    clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

Removed: 
    


################################################################################
diff  --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp 
b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
index 75dee95b7030..f21f144fe424 100644
--- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
@@ -1022,7 +1022,7 @@ Expected<std::string> writeOffloadFile(const OffloadFile 
&File) {
   if (Error Err = createOutputFile(Prefix + "-" + Binary.getTriple() + "-" +
                                        Binary.getArch(),
                                    Suffix, TempFile))
-    return Err;
+    return std::move(Err);
 
   Expected<std::unique_ptr<FileOutputBuffer>> OutputOrErr =
       FileOutputBuffer::create(TempFile, Binary.getImage().size());
@@ -1032,7 +1032,7 @@ Expected<std::string> writeOffloadFile(const OffloadFile 
&File) {
   std::copy(Binary.getImage().bytes_begin(), Binary.getImage().bytes_end(),
             Output->getBufferStart());
   if (Error E = Output->commit())
-    return E;
+    return std::move(E);
 
   return static_cast<std::string>(TempFile);
 }
@@ -1188,7 +1188,7 @@ linkAndWrapDeviceFiles(SmallVectorImpl<OffloadFile> 
&LinkerInputFiles) {
     // First link and remove all the input files containing bitcode.
     SmallVector<std::string> InputFiles;
     if (Error Err = linkBitcodeFiles(Input, InputFiles, Triple, Arch))
-      return Err;
+      return std::move(Err);
 
     // Write any remaining device inputs to an output file for the linker job.
     for (const OffloadFile &File : Input) {


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to