diff options
author | Ilya Biryukov <ibiryukov@google.com> | 2019-04-15 14:43:50 +0000 |
---|---|---|
committer | Ilya Biryukov <ibiryukov@google.com> | 2019-04-15 14:43:50 +0000 |
commit | 70921d4a86e0cbe4978e4306984e9923411dfff2 (patch) | |
tree | fc5a8ea06c11bd6e43ca3a078dab15ad1547306f /llvm/lib/Support/CommandLine.cpp | |
parent | bb6cd8254c2497e744a6774174a6c11636ba9d25 (diff) | |
download | bcm5719-llvm-70921d4a86e0cbe4978e4306984e9923411dfff2.tar.gz bcm5719-llvm-70921d4a86e0cbe4978e4306984e9923411dfff2.zip |
Revert r358337: "[CommandLineParser] Add DefaultOption flag"
The change causes test failures under asan. Reverting to unbreak our
integrate.
llvm-svn: 358414
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
-rw-r--r-- | llvm/lib/Support/CommandLine.cpp | 48 |
1 files changed, 5 insertions, 43 deletions
diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp index 9adccc63574..1858fe941ae 100644 --- a/llvm/lib/Support/CommandLine.cpp +++ b/llvm/lib/Support/CommandLine.cpp @@ -98,11 +98,6 @@ public: // This collects additional help to be printed. std::vector<StringRef> MoreHelp; - // This collects Options added with the cl::DefaultOption flag. Since they can - // be overridden, they are not added to the appropriate SubCommands until - // ParseCommandLineOptions actually runs. - SmallVector<Option*, 4> DefaultOptions; - // This collects the different option categories that have been registered. SmallPtrSet<OptionCategory *, 16> RegisteredOptionCategories; @@ -151,11 +146,6 @@ public: void addOption(Option *O, SubCommand *SC) { bool HadErrors = false; if (O->hasArgStr()) { - // If it's a DefaultOption, check to make sure it isn't already there. - if (O->isDefaultOption() && - SC->OptionsMap.find(O->ArgStr) != SC->OptionsMap.end()) - return; - // Add argument to the argument map! if (!SC->OptionsMap.insert(std::make_pair(O->ArgStr, O)).second) { errs() << ProgramName << ": CommandLine Error: Option '" << O->ArgStr @@ -195,12 +185,7 @@ public: } } - void addOption(Option *O, bool ProcessDefaultOption = false) { - if (!ProcessDefaultOption && O->isDefaultOption()) { - DefaultOptions.push_back(O); - return; - } - + void addOption(Option *O) { if (O->Subs.empty()) { addOption(O, &*TopLevelSubCommand); } else { @@ -216,12 +201,8 @@ public: OptionNames.push_back(O->ArgStr); SubCommand &Sub = *SC; - auto End = Sub.OptionsMap.end(); - for (auto Name : OptionNames) { - auto I = Sub.OptionsMap.find(Name); - if (I != End && I->getValue() == O) - Sub.OptionsMap.erase(I); - } + for (auto Name : OptionNames) + Sub.OptionsMap.erase(Name); if (O->getFormattingFlag() == cl::Positional) for (auto Opt = Sub.PositionalOpts.begin(); @@ -285,13 +266,8 @@ public: if (O->Subs.empty()) updateArgStr(O, NewName, &*TopLevelSubCommand); else { - if (O->isInAllSubCommands()) { - for (auto SC : RegisteredSubCommands) - updateArgStr(O, NewName, SC); - } else { - for (auto SC : O->Subs) - updateArgStr(O, NewName, SC); - } + for (auto SC : O->Subs) + updateArgStr(O, NewName, SC); } } @@ -390,13 +366,6 @@ void Option::setArgStr(StringRef S) { ArgStr = S; } -void Option::reset() { - NumOccurrences = 0; - setDefault(); - if (isDefaultOption()) - removeArgument(); -} - // Initialise the general option category. OptionCategory llvm::cl::GeneralCategory("General options"); @@ -1198,10 +1167,6 @@ bool CommandLineParser::ParseCommandLineOptions(int argc, auto &SinkOpts = ChosenSubCommand->SinkOpts; auto &OptionsMap = ChosenSubCommand->OptionsMap; - for (auto O: DefaultOptions) { - addOption(O, true); - } - if (ConsumeAfterOpt) { assert(PositionalOpts.size() > 0 && "Cannot specify cl::ConsumeAfter without a positional argument!"); @@ -2181,9 +2146,6 @@ static cl::opt<HelpPrinterWrapper, true, parser<bool>> cl::location(WrappedNormalPrinter), cl::ValueDisallowed, cl::cat(GenericCategory), cl::sub(*AllSubCommands)); -static cl::alias HOpA("h", cl::desc("Alias for -help"), cl::aliasopt(HOp), - cl::DefaultOption); - static cl::opt<HelpPrinterWrapper, true, parser<bool>> HHOp("help-hidden", cl::desc("Display all available options"), cl::location(WrappedHiddenPrinter), cl::Hidden, cl::ValueDisallowed, |