Skip to content

Commit 84306ef

Browse files
mati865mstorsjo
authored andcommitted
[LLD][MinGW] Add --fatal-warnings and --no-fatal-warnings flags
Differential Revision: https://reviews.llvm.org/D102514
1 parent d9cb70b commit 84306ef

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

lld/MinGW/Driver.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,11 @@ bool mingw::link(ArrayRef<const char *> argsArr, bool canExitEarly,
290290
add("-debug:dwarf");
291291
}
292292

293+
if (args.hasFlag(OPT_fatal_warnings, OPT_no_fatal_warnings, false))
294+
add("-WX");
295+
else
296+
add("-WX:no");
297+
293298
if (args.hasArg(OPT_shared))
294299
add("-dll");
295300
if (args.hasArg(OPT_verbose))

lld/MinGW/Options.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ def exclude_all_symbols: F<"exclude-all-symbols">,
4545
HelpText<"Don't automatically export any symbols">;
4646
def export_all_symbols: F<"export-all-symbols">,
4747
HelpText<"Export all symbols even if a def file or dllexport attributes are used">;
48+
defm fatal_warnings: B<"fatal-warnings",
49+
"Treat warnings as errors",
50+
"Do not treat warnings as errors (default)">;
4851
defm file_alignment: Eq<"file-alignment", "Set file alignment">;
4952
defm gc_sections: B<"gc-sections",
5053
"Remove unused sections",

lld/test/MinGW/driver.test

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,3 +294,12 @@ DEMANGLE: -demangle{{ }}
294294
RUN: ld.lld -### -m i386pep foo.o -no-demangle | FileCheck -check-prefix NO-DEMANGLE %s
295295
RUN: ld.lld -### -m i386pep foo.o --no-demangle | FileCheck -check-prefix NO-DEMANGLE %s
296296
NO-DEMANGLE: -demangle:no
297+
298+
RUN: ld.lld -### -m i386pep foo.o -fatal-warnings | FileCheck -check-prefix FATAL_WARNINGS %s
299+
RUN: ld.lld -### -m i386pep foo.o --fatal-warnings | FileCheck -check-prefix FATAL_WARNINGS %s
300+
FATAL_WARNINGS: -WX{{ }}
301+
302+
RUN: ld.lld -### -m i386pep foo.o | FileCheck -check-prefix NO-FATAL_WARNINGS %s
303+
RUN: ld.lld -### -m i386pep foo.o -no-fatal-warnings | FileCheck -check-prefix NO-FATAL_WARNINGS %s
304+
RUN: ld.lld -### -m i386pep foo.o --no-fatal-warnings | FileCheck -check-prefix NO-FATAL_WARNINGS %s
305+
NO-FATAL_WARNINGS: -WX:no

0 commit comments

Comments
 (0)