[PATCH] D152198: [lld][COFF] Don't handle an input file multiple times when retrying

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 6 11:09:37 PDT 2023


This revision was automatically updated to reflect the committed changes.
Closed by commit rGec1998cd48b5: [lld][COFF] Don't handle an input file multiple times when retrying (authored by aeubanks).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D152198/new/

https://reviews.llvm.org/D152198

Files:
  lld/COFF/Driver.cpp
  lld/test/COFF/winsysroot.test


Index: lld/test/COFF/winsysroot.test
===================================================================
--- lld/test/COFF/winsysroot.test
+++ lld/test/COFF/winsysroot.test
@@ -26,16 +26,27 @@
 # RUN: lld-link %t.obj /winsysroot:%t.dir/sysroot \
 # RUN:          std32.lib /entry:main
 
+Check that passing a lib from /winsysroot twice is ok
+# RUN: lld-link %p/Inputs/hello64.obj /winsysroot:%t.dir/sysroot \
+# RUN:          std64.lib std64.lib /entry:main
+
+Check unknown library
+# RUN: not lld-link %p/Inputs/hello64.obj /winsysroot:%t.dir/sysroot \
+# RUN:          notfound.lib /entry:main 2>&1 | FileCheck --check-prefix=UNKNOWNLIB %s
+UNKNOWNLIB: could not open 'notfound.lib'
+
 If winsysroot lib appears before we can detect arch we don't find it
 # RUN: not lld-link std64.lib %p/Inputs/hello64.obj /winsysroot:%t.dir/sysroot \
-# RUN:          /entry:main
+# RUN:          /entry:main 2>&1 | FileCheck --check-prefix=NO64 %s
 
 Check we don't choose the wrong arch
 # RUN: not lld-link %t.obj /winsysroot:%t.dir/sysroot \
-# RUN:          std64.lib /entry:main
+# RUN:          std64.lib /entry:main 2>&1 | FileCheck --check-prefix=NO64 %s
+NO64: could not open 'std64.lib'
 
 # RUN: not lld-link %p/Inputs/hello64.obj /winsysroot:%t.dir/sysroot \
-# RUN:          std32.lib /entry:main
+# RUN:          std32.lib /entry:main 2>&1 | FileCheck --check-prefix=NO32 %s
+NO32: could not open 'std32.lib'
 
 Check that when /winsysroot is specified, %LIB% is ignored.
 # RUN: env LIB=foo.dir/sysroot/VC/Tools/MSVC/1.1.1.1/lib/x86 not lld-link %t.obj /winsysroot:%t.dir/doesnotexist /defaultlib:std32 2>&1 | FileCheck -check-prefix=LIBIGNORED %s
Index: lld/COFF/Driver.cpp
===================================================================
--- lld/COFF/Driver.cpp
+++ lld/COFF/Driver.cpp
@@ -262,6 +262,9 @@
         ec = retryMb.getError();
         if (!ec)
           mb = std::move(*retryMb);
+      } else {
+        // We've already handled this file.
+        return;
       }
     }
     if (ec) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D152198.528950.patch
Type: text/x-patch
Size: 2015 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230606/98123d78/attachment.bin>


More information about the llvm-commits mailing list