@@ -103,9 +103,9 @@ opt::InputArgList MinGWOptTable::parse(ArrayRef<const char *> argv) {
103
103
opt::InputArgList args = this ->ParseArgs (vec, missingIndex, missingCount);
104
104
105
105
if (missingCount)
106
- fatal (StringRef (args.getArgString (missingIndex)) + " : missing argument" );
106
+ error (StringRef (args.getArgString (missingIndex)) + " : missing argument" );
107
107
for (auto *arg : args.filtered (OPT_UNKNOWN))
108
- fatal (" unknown argument: " + arg->getAsString (args));
108
+ error (" unknown argument: " + arg->getAsString (args));
109
109
return args;
110
110
}
111
111
@@ -160,9 +160,14 @@ searchLibrary(StringRef name, ArrayRef<StringRef> searchPaths, bool bStatic) {
160
160
// Convert Unix-ish command line arguments to Windows-ish ones and
161
161
// then call coff::link.
162
162
bool mingw::link (ArrayRef<const char *> argsArr, raw_ostream &diag) {
163
+ enableColors (diag.has_colors ());
164
+
163
165
MinGWOptTable parser;
164
166
opt::InputArgList args = parser.parse (argsArr.slice (1 ));
165
167
168
+ if (errorCount ())
169
+ return false ;
170
+
166
171
if (args.hasArg (OPT_help)) {
167
172
printHelp (argsArr[0 ]);
168
173
return true ;
@@ -183,8 +188,10 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) {
183
188
if (args.hasArg (OPT_version))
184
189
return true ;
185
190
186
- if (!args.hasArg (OPT_INPUT) && !args.hasArg (OPT_l))
187
- fatal (" no input files" );
191
+ if (!args.hasArg (OPT_INPUT) && !args.hasArg (OPT_l)) {
192
+ error (" no input files" );
193
+ return false ;
194
+ }
188
195
189
196
std::vector<std::string> linkArgs;
190
197
auto add = [&](const Twine &s) { linkArgs.push_back (s.str ()); };
@@ -290,7 +297,7 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) {
290
297
else if (s == " safe" || s == " none" )
291
298
add (" -opt:noicf" );
292
299
else
293
- fatal (" unknown parameter: --icf=" + s);
300
+ error (" unknown parameter: --icf=" + s);
294
301
} else {
295
302
add (" -opt:noicf" );
296
303
}
@@ -306,7 +313,7 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) {
306
313
else if (s == " arm64pe" )
307
314
add (" -machine:arm64" );
308
315
else
309
- fatal (" unknown parameter: -m" + s);
316
+ error (" unknown parameter: -m" + s);
310
317
}
311
318
312
319
for (auto *a : args.filtered (OPT_mllvm))
0 commit comments