aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/FileCheck/FileCheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/utils/FileCheck/FileCheck.cpp')
-rw-r--r--llvm/utils/FileCheck/FileCheck.cpp22
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;