File tree 8 files changed +34
-11
lines changed
8 files changed +34
-11
lines changed Original file line number Diff line number Diff line change @@ -858,8 +858,14 @@ opt::InputArgList ArgParser::parse(ArrayRef<const char *> Argv) {
858
858
859
859
handleColorDiagnostics (Args);
860
860
861
- for (auto *Arg : Args.filtered (OPT_UNKNOWN))
862
- warn (" ignoring unknown argument: " + Arg->getSpelling ());
861
+ for (auto *Arg : Args.filtered (OPT_UNKNOWN)) {
862
+ std::string Nearest;
863
+ if (Table.findNearest (Arg->getAsString (Args), Nearest) > 1 )
864
+ warn (" ignoring unknown argument '" + Arg->getSpelling () + " '" );
865
+ else
866
+ warn (" ignoring unknown argument '" + Arg->getSpelling () +
867
+ " ', did you mean '" + Nearest + " '" );
868
+ }
863
869
864
870
if (Args.hasArg (OPT_lib))
865
871
warn (" ignoring /lib since it's not the first argument" );
Original file line number Diff line number Diff line change @@ -132,8 +132,14 @@ opt::InputArgList ELFOptTable::parse(ArrayRef<const char *> Argv) {
132
132
if (MissingCount)
133
133
error (Twine (Args.getArgString (MissingIndex)) + " : missing argument" );
134
134
135
- for (auto *Arg : Args.filtered (OPT_UNKNOWN))
136
- error (" unknown argument: " + Arg->getSpelling ());
135
+ for (auto *Arg : Args.filtered (OPT_UNKNOWN)) {
136
+ std::string Nearest;
137
+ if (findNearest (Arg->getAsString (Args), Nearest) > 1 )
138
+ error (" unknown argument '" + Arg->getSpelling () + " '" );
139
+ else
140
+ error (" unknown argument '" + Arg->getSpelling () + " ', did you mean '" +
141
+ Nearest + " '" );
142
+ }
137
143
return Args;
138
144
}
139
145
Original file line number Diff line number Diff line change 6
6
# RUN: not lld-link -xyz --color-diagnostics=always /nosuchfile 2>&1 \
7
7
# RUN: | FileCheck -check-prefix=COLOR %s
8
8
9
- # COLOR: {{lld-link: .\[0;1;35mwarning: .\[0mignoring unknown argument: -xyz}}
9
+ # COLOR: {{lld-link: .\[0;1;35mwarning: .\[0mignoring unknown argument ' -xyz' }}
10
10
# COLOR: {{lld-link: .\[0;1;31merror: .\[0mcould not open /nosuchfile}}
11
11
12
12
# RUN: not lld-link /nosuchfile 2>&1 | FileCheck -check-prefix=NOCOLOR %s
Original file line number Diff line number Diff line change @@ -19,3 +19,11 @@ LIBBAD: ignoring /lib since it's not the first argument
19
19
# RUN: yaml2obj < %p/Inputs/hello32.yaml > %t.obj
20
20
# RUN: not lld-link /out:/ %t.obj 2>&1 | FileCheck -check-prefix=DIR %s
21
21
DIR: cannot open output file
22
+
23
+ # RUN: not lld-link -version 2>&1 | FileCheck -check-prefix=SPELLVERSION %s
24
+ SPELLVERSION: ignoring unknown argument '-version', did you mean '--version'
25
+ SPELLVERSION: no input files
26
+
27
+ # RUN: not lld-link -nodefaultlibs 2>&1 | FileCheck -check-prefix=SPELLNODEFAULTLIB %s
28
+ SPELLNODEFAULTLIB: ignoring unknown argument '-nodefaultlibs', did you mean '-nodefaultlib'
29
+ SPELLNODEFAULTLIB: no input files
Original file line number Diff line number Diff line change 8
8
# RUN: lld-link /out:%t.exe /entry:main -notarealoption /WX /WX:NO %t.obj 2>&1 | \
9
9
# RUN: FileCheck -check-prefix=WARNING %s
10
10
11
- # ERROR: error: ignoring unknown argument: -notarealoption
12
- # WARNING: warning: ignoring unknown argument: -notarealoption
11
+ # ERROR: error: ignoring unknown argument ' -notarealoption'
12
+ # WARNING: warning: ignoring unknown argument ' -notarealoption'
13
13
14
14
.text
15
15
.global main
Original file line number Diff line number Diff line change @@ -234,7 +234,7 @@ _start:
234
234
# NO_O_VAL: -o: missing argument
235
235
236
236
# RUN: not ld.lld --foo 2>&1 | FileCheck --check-prefix=UNKNOWN %s
237
- # UNKNOWN: unknown argument: --foo
237
+ # UNKNOWN: unknown argument ' --foo'
238
238
239
239
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
240
240
# RUN: not ld.lld %t %t -o %t2 2>&1 | FileCheck --check-prefix=DUP %s
Original file line number Diff line number Diff line change 6
6
# RUN: not ld.lld -xyz -color-diagnostics=always /nosuchfile 2>&1 \
7
7
# RUN: | FileCheck -check-prefix=COLOR %s
8
8
9
- # COLOR: {{ld.lld: .\[0;1;31merror: .\[0munknown argument: -xyz}}
9
+ # COLOR: {{ld.lld: .\[0;1;31merror: .\[0munknown argument ' -xyz' }}
10
10
# COLOR: {{ld.lld: .\[0;1;31merror: .\[0mcannot open /nosuchfile}}
11
11
12
12
# RUN: not ld.lld -color-diagnostics=foobar 2>&1 | FileCheck -check-prefix=ERR %s
Original file line number Diff line number Diff line change 3
3
# RUN: not ld.lld --unknown1 --unknown2 -m foo /no/such/file -lnosuchlib \
4
4
# RUN: 2>&1 | FileCheck -check-prefix=UNKNOWN %s
5
5
6
- # UNKNOWN: unknown argument: --unknown1
7
- # UNKNOWN: unknown argument: --unknown2
6
+ # UNKNOWN: unknown argument ' --unknown1'
7
+ # UNKNOWN: unknown argument ' --unknown2'
8
8
# UNKNOWN: unknown emulation: foo
9
9
# UNKNOWN: cannot open /no/such/file
10
10
# UNKNOWN: unable to find library -lnosuchlib
22
22
# RUN: not ld.lld -v xyz 2>&1 | FileCheck -check-prefix=VERSION %s
23
23
# VERSION: LLD {{.*}} (compatible with GNU linkers)
24
24
25
+ # RUN: not ld.lld --versin 2>&1 | FileCheck -check-prefix=SPELLVERSION %s
26
+ # SPELLVERSION: unknown argument '--versin', did you mean '--version'
27
+
25
28
## Attempt to link DSO with -r
26
29
# RUN: ld.lld -shared %t -o %t.so
27
30
# RUN: not ld.lld -r %t.so %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR %s
You can’t perform that action at this time.
0 commit comments