[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
Mon Jun 5 16:32:38 PDT 2023
aeubanks updated this revision to Diff 528624.
aeubanks added a comment.
add/update tests
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.528624.patch
Type: text/x-patch
Size: 2015 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230605/4cdbc2e2/attachment.bin>
More information about the llvm-commits
mailing list