aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-ml
diff options
context:
space:
mode:
authorEric Astor <epastor@google.com>2021-04-02 14:09:39 -0400
committerEric Astor <epastor@google.com>2021-04-02 15:13:20 -0400
commit0499a9d6889050c4b28c0d6d9ec987831ad7de7e (patch)
tree85ae0816e8494b726d8ed396c9b8facab6716d15 /llvm/tools/llvm-ml
parentf78d932cf23a6521a1f9a08c539d1a00148ebe54 (diff)
downloadllvm-0499a9d6889050c4b28c0d6d9ec987831ad7de7e.zip
llvm-0499a9d6889050c4b28c0d6d9ec987831ad7de7e.tar.gz
llvm-0499a9d6889050c4b28c0d6d9ec987831ad7de7e.tar.bz2
[ms] [llvm-ml] Accept /WX to signal that warnings should be fatal.
Define -fatal-warnings to make warnings fatal, and accept /WX as an ML.EXE compatible alias for it. Also make sure that if Warning() returns true, we always treat it as an error. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D92504
Diffstat (limited to 'llvm/tools/llvm-ml')
-rw-r--r--llvm/tools/llvm-ml/Opts.td4
-rw-r--r--llvm/tools/llvm-ml/llvm-ml.cpp1
2 files changed, 4 insertions, 1 deletions
diff --git a/llvm/tools/llvm-ml/Opts.td b/llvm/tools/llvm-ml/Opts.td
index a780720..b5ba920 100644
--- a/llvm/tools/llvm-ml/Opts.td
+++ b/llvm/tools/llvm-ml/Opts.td
@@ -31,6 +31,8 @@ def bitness : LLVMJoined<"m">, Values<"32,64">,
HelpText<"Target platform (x86 or x86-64)">;
def as_lex : LLVMFlag<"as-lex">,
HelpText<"Lex tokens from a .asm file without assembling">;
+def fatal_warnings : LLVMFlag<"fatal-warnings">,
+ HelpText<"Treat warnings as errors">;
def filetype : LLVMJoined<"filetype=">, Values<"obj,s,null">,
HelpText<"Emit a file with the given type">;
def output_att_asm : LLVMFlag<"output-att-asm">,
@@ -68,6 +70,7 @@ def safeseh : MLFlag<"safeseh">,
def assembly_file : MLJoinedOrSeparate<"Ta">,
HelpText<"Assemble source file with name not ending with "
"the .asm extension">;
+def error_on_warning : MLFlag<"WX">, Alias<fatal_warnings>;
def parse_only : MLFlag<"Zs">, HelpText<"Run a syntax-check only">,
Alias<filetype>, AliasArgs<["null"]>;
@@ -102,7 +105,6 @@ def listing_title : UnsupportedSeparate<"St">, HelpText<"">;
def listing_false_conditionals : UnsupportedFlag<"Sx">, HelpText<"">;
def extra_warnings : UnsupportedFlag<"w">, HelpText<"">;
def warning_level : UnsupportedJoined<"W">, HelpText<"">;
-def error_on_warning : UnsupportedFlag<"WX">, HelpText<"">;
def ignore_include_envvar : UnsupportedFlag<"X">, HelpText<"">;
def line_number_info : UnsupportedFlag<"Zd">, HelpText<"">;
def export_all_symbols : UnsupportedFlag<"Zf">, HelpText<"">;
diff --git a/llvm/tools/llvm-ml/llvm-ml.cpp b/llvm/tools/llvm-ml/llvm-ml.cpp
index 1733dcd..1292f40 100644
--- a/llvm/tools/llvm-ml/llvm-ml.cpp
+++ b/llvm/tools/llvm-ml/llvm-ml.cpp
@@ -231,6 +231,7 @@ int main(int Argc, char **Argv) {
MCTargetOptions MCOptions;
MCOptions.AssemblyLanguage = "masm";
+ MCOptions.MCFatalWarnings = InputArgs.hasArg(OPT_fatal_warnings);
Triple TheTriple = GetTriple(ProgName, InputArgs);
std::string Error;