summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-04-15 16:34:29 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-04-15 16:34:29 +0000
commita7b5e219bb5365b19f01c554b72c29cdde0e1244 (patch)
treecf16dac67c098b6b2e523fd18f64a09126eefc7d /clang/lib/Driver/Driver.cpp
parentf5e8ddd550c76c928f8886c45b0eb9ac641b4678 (diff)
downloadbcm5719-llvm-a7b5e219bb5365b19f01c554b72c29cdde0e1244.tar.gz
bcm5719-llvm-a7b5e219bb5365b19f01c554b72c29cdde0e1244.zip
Driver: Add --help-hidden
llvm-svn: 69171
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 8768629625d..da590f2bca0 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -253,7 +253,7 @@ static std::string getOptionHelpName(const OptTable &Opts, options::ID Id) {
return Name;
}
-void Driver::PrintHelp() const {
+void Driver::PrintHelp(bool ShowHidden) const {
llvm::raw_ostream &OS = llvm::outs();
OS << "OVERVIEW: clang \"gcc-compatible\" driver\n";
@@ -272,9 +272,43 @@ void Driver::PrintHelp() const {
Text));
}
+ if (ShowHidden) {
+ OptionHelp.push_back(std::make_pair("\nDRIVER OPTIONS:",""));
+ OptionHelp.push_back(std::make_pair("-ccc-cxx",
+ "Act as a C++ driver"));
+ OptionHelp.push_back(std::make_pair("-ccc-gcc-name",
+ "Name for native GCC compiler"));
+ OptionHelp.push_back(std::make_pair("-ccc-clang-cxx",
+ "Use the clang compiler for C++"));
+ OptionHelp.push_back(std::make_pair("-ccc-no-clang",
+ "Never use the clang compiler"));
+ OptionHelp.push_back(std::make_pair("-ccc-no-clang-cpp",
+ "Never use the clang preprocessor"));
+ OptionHelp.push_back(std::make_pair("-ccc-clang-archs",
+ "Comma separate list of architectures "
+ "to use the clang compiler for"));
+
+ OptionHelp.push_back(std::make_pair("\nDEBUG/DEVELOPMENT OPTIONS:",""));
+ OptionHelp.push_back(std::make_pair("-ccc-host-triple",
+ "Simulate running on the given target"));
+ OptionHelp.push_back(std::make_pair("-ccc-print-options",
+ "Dump parsed command line arguments"));
+ OptionHelp.push_back(std::make_pair("-ccc-print-phases",
+ "Dump list of actions to perform"));
+ OptionHelp.push_back(std::make_pair("-ccc-print-bindings",
+ "Show bindings of tools to actions"));
+ OptionHelp.push_back(std::make_pair("CCC_ADD_ARGS",
+ "(ENVIRONMENT VARIABLE) Comma separated list of "
+ "arguments to prepend to the command line"));
+ }
+
// Find the maximum option length.
unsigned OptionFieldWidth = 0;
for (unsigned i = 0, e = OptionHelp.size(); i != e; ++i) {
+ // Skip titles.
+ if (!OptionHelp[i].second)
+ continue;
+
// Limit the amount of padding we are willing to give up for
// alignment.
unsigned Length = OptionHelp[i].first.size();
@@ -329,8 +363,9 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
- if (C.getArgs().hasArg(options::OPT__help)) {
- PrintHelp();
+ if (C.getArgs().hasArg(options::OPT__help) ||
+ C.getArgs().hasArg(options::OPT__help_hidden)) {
+ PrintHelp(C.getArgs().hasArg(options::OPT__help_hidden));
return false;
}
OpenPOWER on IntegriCloud