diff options
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
-rw-r--r-- | llvm/lib/Support/CommandLine.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp index e64934a..5b7004c 100644 --- a/llvm/lib/Support/CommandLine.cpp +++ b/llvm/lib/Support/CommandLine.cpp @@ -2656,10 +2656,13 @@ cl::getRegisteredSubcommands() { void cl::HideUnrelatedOptions(cl::OptionCategory &Category, SubCommand &Sub) { initCommonOptions(); for (auto &I : Sub.OptionsMap) { + bool Unrelated = true; for (auto &Cat : I.second->Categories) { - if (Cat != &Category && Cat != &CommonOptions->GenericCategory) - I.second->setHiddenFlag(cl::ReallyHidden); + if (Cat == &Category || Cat == &CommonOptions->GenericCategory) + Unrelated = false; } + if (Unrelated) + I.second->setHiddenFlag(cl::ReallyHidden); } } @@ -2667,11 +2670,14 @@ void cl::HideUnrelatedOptions(ArrayRef<const cl::OptionCategory *> Categories, SubCommand &Sub) { initCommonOptions(); for (auto &I : Sub.OptionsMap) { + bool Unrelated = true; for (auto &Cat : I.second->Categories) { - if (!is_contained(Categories, Cat) && - Cat != &CommonOptions->GenericCategory) - I.second->setHiddenFlag(cl::ReallyHidden); + if (is_contained(Categories, Cat) || + Cat == &CommonOptions->GenericCategory) + Unrelated = false; } + if (Unrelated) + I.second->setHiddenFlag(cl::ReallyHidden); } } |