summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra
diff options
context:
space:
mode:
authorEdwin Vane <edwin.vane@intel.com>2013-07-04 17:49:59 +0000
committerEdwin Vane <edwin.vane@intel.com>2013-07-04 17:49:59 +0000
commit17b31f3d43baee73b12cc2213db1785c889728f5 (patch)
tree6c48009a0039771752a384c8b02e0fc762776982 /clang-tools-extra
parent31c3b2ddeec555a34476c4f71fed754782c58696 (diff)
downloadbcm5719-llvm-17b31f3d43baee73b12cc2213db1785c889728f5.tar.gz
bcm5719-llvm-17b31f3d43baee73b12cc2213db1785c889728f5.zip
cpp11-migrate: Minor command-line fixes and improvements
* all transforms are in the same category * all transforms' options are in the same category * display the CommonOptionParser extra-help (which describe in more details the compilation database stuff) * add EXAMPLES section Author: Guillaume Papin <guillaume.papin@epitech.eu> llvm-svn: 185660
Diffstat (limited to 'clang-tools-extra')
-rw-r--r--clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp8
-rw-r--r--clang-tools-extra/cpp11-migrate/Core/Transform.cpp2
-rw-r--r--clang-tools-extra/cpp11-migrate/Core/Transform.h6
-rw-r--r--clang-tools-extra/cpp11-migrate/Core/Transforms.cpp5
-rw-r--r--clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp10
-rw-r--r--clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp18
6 files changed, 38 insertions, 11 deletions
diff --git a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp
index 1b77e128406..aed90c00667 100644
--- a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp
+++ b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp
@@ -21,16 +21,16 @@
#include "clang/Rewrite/Core/Rewriter.h"
#include "clang/Tooling/Refactoring.h"
#include "clang/Tooling/Tooling.h"
-#include "llvm/Support/CommandLine.h"
using clang::ast_matchers::MatchFinder;
using namespace clang::tooling;
using namespace clang;
+namespace cl = llvm::cl;
-static llvm::cl::opt<bool> DetectMacros(
+static cl::opt<bool> DetectMacros(
"override-macros",
- llvm::cl::desc(
- "Detect and use macros that expand to the 'override' keyword."));
+ cl::desc("Detect and use macros that expand to the 'override' keyword."),
+ cl::cat(TransformsOptionsCategory));
int AddOverrideTransform::apply(FileOverrides &InputStates,
const CompilationDatabase &Database,
diff --git a/clang-tools-extra/cpp11-migrate/Core/Transform.cpp b/clang-tools-extra/cpp11-migrate/Core/Transform.cpp
index 7be91993bb8..92ccad74e7f 100644
--- a/clang-tools-extra/cpp11-migrate/Core/Transform.cpp
+++ b/clang-tools-extra/cpp11-migrate/Core/Transform.cpp
@@ -11,6 +11,8 @@
using namespace clang;
+llvm::cl::OptionCategory TransformsOptionsCategory("Transforms' options");
+
namespace {
using namespace tooling;
diff --git a/clang-tools-extra/cpp11-migrate/Core/Transform.h b/clang-tools-extra/cpp11-migrate/Core/Transform.h
index 997a95e1646..e273cf68c64 100644
--- a/clang-tools-extra/cpp11-migrate/Core/Transform.h
+++ b/clang-tools-extra/cpp11-migrate/Core/Transform.h
@@ -20,8 +20,9 @@
#include "Core/IncludeExcludeInfo.h"
#include "Core/FileOverrides.h"
#include "clang/Tooling/Refactoring.h"
-#include "llvm/Support/Timer.h"
#include "llvm/ADT/OwningPtr.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Timer.h"
/// \brief Description of the riskiness of actions that can be taken by
@@ -51,6 +52,9 @@ class MatchFinder;
class RewriterManager;
+/// \brief To group transforms' options together when printing the help.
+extern llvm::cl::OptionCategory TransformsOptionsCategory;
+
/// \brief Container for global options affecting all transforms.
struct TransformOptions {
/// \brief Enable the use of performance timers.
diff --git a/clang-tools-extra/cpp11-migrate/Core/Transforms.cpp b/clang-tools-extra/cpp11-migrate/Core/Transforms.cpp
index 4347e4e46df..a9d8015f29f 100644
--- a/clang-tools-extra/cpp11-migrate/Core/Transforms.cpp
+++ b/clang-tools-extra/cpp11-migrate/Core/Transforms.cpp
@@ -17,6 +17,8 @@
namespace cl = llvm::cl;
+static cl::OptionCategory TransformCategory("Transforms");
+
Transforms::~Transforms() {
for (std::vector<Transform*>::iterator I = ChosenTransforms.begin(),
E = ChosenTransforms.end(); I != E; ++I) {
@@ -32,7 +34,8 @@ void Transforms::registerTransform(llvm::StringRef OptName,
llvm::StringRef Description,
TransformCreator Creator) {
Options.push_back(OptionVec::value_type(
- new cl::opt<bool>(OptName.data(), cl::desc(Description.data())),
+ new cl::opt<bool>(OptName.data(), cl::desc(Description.data()),
+ cl::cat(TransformCategory)),
Creator));
}
diff --git a/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp b/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
index 6f476113367..309ba713756 100644
--- a/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
+++ b/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
@@ -26,15 +26,17 @@
using namespace clang::ast_matchers;
using namespace clang::tooling;
using namespace clang;
+namespace cl = llvm::cl;
namespace {
const char *NullMacroName = "NULL";
-static llvm::cl::opt<std::string> UserNullMacroNames(
- "user-null-macros", llvm::cl::desc("Comma-separated list of user-defined "
- "macro names that behave like NULL"),
- llvm::cl::init(""));
+static cl::opt<std::string>
+UserNullMacroNames("user-null-macros",
+ cl::desc("Comma-separated list of user-defined "
+ "macro names that behave like NULL"),
+ cl::cat(TransformsOptionsCategory), cl::init(""));
bool isReplaceableRange(SourceLocation StartLoc, SourceLocation EndLoc,
const SourceManager &SM, const Transform &Owner) {
diff --git a/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp b/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
index 1722de9fe68..46351fd6237 100644
--- a/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
+++ b/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
@@ -34,6 +34,22 @@ using namespace clang::tooling;
TransformOptions GlobalOptions;
+static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage);
+static cl::extrahelp MoreHelp(
+ "EXAMPLES:\n\n"
+ "Use 'auto' type specifier, no compilation database:\n\n"
+ " cpp11-migrate -use-auto path/to/file.cpp -- -Ipath/to/include/\n"
+ "\n"
+ "Convert for loops to the new ranged-based for loops on all files in a "
+ "subtree:\n\n"
+ " find path/in/subtree -name '*.cpp' -exec \\\n"
+ " cpp11-migrate -p build/path -loop-convert {} ';'\n"
+ "\n"
+ "Make use of both nullptr and the override specifier, using git ls-files:\n"
+ "\n"
+ " git ls-files '*.cpp' | xargs -I{} cpp11-migrate -p build/path \\\n"
+ " -use-nullptr -add-override -override-macros {}\n");
+
static cl::opt<RiskLevel, /*ExternalStorage=*/true> MaxRiskLevel(
"risk", cl::desc("Select a maximum risk level:"),
cl::values(clEnumValN(RL_Safe, "safe", "Only safe transformations"),
@@ -131,7 +147,7 @@ int main(int argc, const char **argv) {
TransformManager.createSelectedTransforms(GlobalOptions);
if (TransformManager.begin() == TransformManager.end()) {
- llvm::errs() << "No selected transforms\n";
+ llvm::errs() << argv[0] << ": No selected transforms\n";
return 1;
}
OpenPOWER on IntegriCloud