lld-link: For nonexisting inputs, omit follow-on diagnostics

For lld-link missing.obj, lld-link currently prints:

  lld-link: error: could not open foo.obj: No such file or directory
  lld-link: warning: /machine is not specified. x64 is assumed
  lld-link: error: subsystem must be defined

The 2nd and 3rd diagnostics are consequences of the input not existing and are
not interesting. If input files are missing, the best thing we can do is point
that out and then return.

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

llvm-svn: 342158
This commit is contained in:
Nico Weber 2018-09-13 18:13:21 +00:00
parent 79c054f6b8
commit f1828e3240
2 changed files with 8 additions and 0 deletions

View File

@ -1236,6 +1236,9 @@ void LinkerDriver::link(ArrayRef<const char *> ArgsArr) {
// Read all input files given via the command line.
run();
if (errorCount())
return;
// We should have inferred a machine type by now from the input files, but if
// not we assume x64.
if (Config->Machine == IMAGE_FILE_MACHINE_UNKNOWN) {

View File

@ -0,0 +1,5 @@
RUN: not lld-link 01 2>&1 | FileCheck %s
CHECK: could not open 01
CHECK-NOT: /machine is not specified
CHECK-NOT: subsystem must be defined