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
30 lines
1.2 KiB
Plaintext
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
|