summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
diff options
context:
space:
mode:
authorEdwin Vane <edwin.vane@intel.com>2013-06-06 20:31:52 +0000
committerEdwin Vane <edwin.vane@intel.com>2013-06-06 20:31:52 +0000
commit32e3553f838ed05d21b6df2e02f88340c645b5a6 (patch)
tree4b46c59fc7019a45608fa3088148e5cb49ffad9c /clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
parentfb5bddfd0a3383c9c724212e21857daa9b319595 (diff)
downloadbcm5719-llvm-32e3553f838ed05d21b6df2e02f88340c645b5a6.tar.gz
bcm5719-llvm-32e3553f838ed05d21b6df2e02f88340c645b5a6.zip
cpp11-migrate: Refactor how global options are passed to Transforms
Refactored how global options are passed to Transforms to avoid widespread changes every time a new global option is added. Tests updated to reflect new interface. llvm-svn: 183443
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp')
-rw-r--r--clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp b/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
index 27ffafa603d..cd2e653fbc6 100644
--- a/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
+++ b/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp
@@ -30,7 +30,9 @@
namespace cl = llvm::cl;
using namespace clang::tooling;
-static cl::opt<RiskLevel> MaxRiskLevel(
+TransformOptions GlobalOptions;
+
+static cl::opt<RiskLevel, /*ExternalStorage=*/true> MaxRiskLevel(
"risk", cl::desc("Select a maximum risk level:"),
cl::values(clEnumValN(RL_Safe, "safe", "Only safe transformations"),
clEnumValN(RL_Reasonable, "reasonable",
@@ -40,6 +42,7 @@ static cl::opt<RiskLevel> MaxRiskLevel(
"Enable transformations that are likely to "
"change semantics"),
clEnumValEnd),
+ cl::location(GlobalOptions.MaxRiskLevel),
cl::init(RL_Reasonable));
static cl::opt<bool> FinalSyntaxCheck(
@@ -108,8 +111,9 @@ int main(int argc, const char **argv) {
// Since ExecutionTimeDirectoryName could be an empty string we compare
// against the default value when the command line option is not specified.
- bool EnableTiming = (TimingDirectoryName != NoTiming);
- TransformManager.createSelectedTransforms(EnableTiming);
+ GlobalOptions.EnableTiming = (TimingDirectoryName != NoTiming);
+
+ TransformManager.createSelectedTransforms(GlobalOptions);
if (TransformManager.begin() == TransformManager.end()) {
llvm::errs() << "No selected transforms\n";
@@ -125,15 +129,14 @@ int main(int argc, const char **argv) {
for (Transforms::const_iterator I = TransformManager.begin(),
E = TransformManager.end();
I != E; ++I) {
- if ((*I)->apply(*InputFileStates, MaxRiskLevel,
- OptionsParser.getCompilations(),
+ if ((*I)->apply(*InputFileStates, OptionsParser.getCompilations(),
OptionsParser.getSourcePathList(), *OutputFileStates) !=
0) {
// FIXME: Improve ClangTool to not abort if just one file fails.
return 1;
}
- if (EnableTiming)
+ if (GlobalOptions.EnableTiming)
collectSourcePerfData(**I, PerfData);
if (SummaryMode) {
@@ -184,7 +187,7 @@ int main(int argc, const char **argv) {
}
// Report execution times.
- if (EnableTiming && !PerfData.empty()) {
+ if (GlobalOptions.EnableTiming && !PerfData.empty()) {
std::string DirectoryName = TimingDirectoryName;
// Use default directory name.
if (DirectoryName.empty())
OpenPOWER on IntegriCloud