Files
clang-p2996/lld/test/COFF/error-limit.test
Nico Weber 9b2830b46e lld-link, clang: Treat non-existent input files as possible spellos for option flags
OptTable treats arguments starting with / that aren't a known option
as filenames. This means lld-link's and clang-cl's typo correction for
unknown flags didn't do spell checking for misspelled options that start
with /.

I first tried changing OptTable, but that got pretty messy, see PR41787
comments 2 and 3.

Instead, let lld-link's and clang's (including clang-cl's) "file not
found" diagnostic check if a non-existent file looks like it could be a
mis-spelled option, and if so add a "did you mean" suggestion to the
"file not found" diagnostic.

While here, make formatting of a few diagnostics a bit more
self-consistent.

Fixes PR41787.

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

llvm-svn: 361518
2019-05-23 17:58:33 +00:00

30 lines
1.2 KiB
Plaintext

RUN: not lld-link 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 \
RUN: 21 22 2>&1 | FileCheck -check-prefix=DEFAULT %s
DEFAULT: could not open '01'
DEFAULT: could not open '20'
DEFAULT-NEXT: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
DEFAULT-NOT: could not open '21'
RUN: not lld-link /errorlimit:5 01 02 03 04 05 06 07 08 09 10 2>&1 \
RUN: | FileCheck -check-prefix=LIMIT5 %s
LIMIT5: could not open '01'
LIMIT5: could not open '05'
LIMIT5-NEXT: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
LIMIT5-NOT: could not open '06'
RUN: not lld-link /errorlimit:0 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 \
RUN: 16 17 18 19 20 21 22 2>&1 | FileCheck -check-prefix=UNLIMITED %s
UNLIMITED: could not open '01'
UNLIMITED: could not open '20'
UNLIMITED: could not open '21'
UNLIMITED: could not open '22'
UNLIMITED-NOT: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
RUN: not lld-link /errorlimit:XYZ 01 02 03 04 05 06 07 08 09 10 11 12 13 14 \
RUN: 15 16 17 18 19 20 21 22 2>&1 | FileCheck -check-prefix=WRONG %s
WRONG: /errorlimit: number expected, but got XYZ