diff options
Diffstat (limited to 'llvm/utils/FileCheck/FileCheck.cpp')
-rw-r--r-- | llvm/utils/FileCheck/FileCheck.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/llvm/utils/FileCheck/FileCheck.cpp b/llvm/utils/FileCheck/FileCheck.cpp index 44d5be1..6f579135 100644 --- a/llvm/utils/FileCheck/FileCheck.cpp +++ b/llvm/utils/FileCheck/FileCheck.cpp @@ -108,24 +108,28 @@ static cl::opt<bool> DumpInputOnFailure( "FILECHECK_DUMP_INPUT_ON_FAILURE environment variable.\n" "This option is deprecated in favor of -dump-input=fail.\n")); +// The order of DumpInputValue members affects their precedence, as documented +// for -dump-input below. enum DumpInputValue { DumpInputDefault, - DumpInputHelp, DumpInputNever, DumpInputFail, - DumpInputAlways + DumpInputAlways, + DumpInputHelp }; -static cl::opt<DumpInputValue> DumpInput( - "dump-input", cl::init(DumpInputDefault), +static cl::list<DumpInputValue> DumpInputs( + "dump-input", cl::desc("Dump input to stderr, adding annotations representing\n" - " currently enabled diagnostics\n"), + "currently enabled diagnostics. When there are multiple\n" + "occurrences of this option, the <value> that appears earliest\n" + "in the list below has precedence.\n"), cl::value_desc("mode"), cl::values(clEnumValN(DumpInputHelp, "help", "Explain dump format and quit"), - clEnumValN(DumpInputNever, "never", "Never dump input"), + clEnumValN(DumpInputAlways, "always", "Always dump input"), clEnumValN(DumpInputFail, "fail", "Dump input on failure"), - clEnumValN(DumpInputAlways, "always", "Always dump input"))); + clEnumValN(DumpInputNever, "never", "Never dump input"))); typedef cl::list<std::string>::const_iterator prefix_iterator; @@ -516,6 +520,10 @@ int main(int argc, char **argv) { InitLLVM X(argc, argv); cl::ParseCommandLineOptions(argc, argv, /*Overview*/ "", /*Errs*/ nullptr, "FILECHECK_OPTS"); + DumpInputValue DumpInput = + DumpInputs.empty() + ? DumpInputDefault + : *std::max_element(DumpInputs.begin(), DumpInputs.end()); if (DumpInput == DumpInputHelp) { DumpInputAnnotationHelp(outs()); return 0; |