summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/cpp11-migrate/LoopConvert
diff options
context:
space:
mode:
authorGuillaume Papin <guillaume.papin@epitech.eu>2013-07-24 14:24:33 +0000
committerGuillaume Papin <guillaume.papin@epitech.eu>2013-07-24 14:24:33 +0000
commitebde78c4c6149dfd6dfcddd39ed07e5aec1860ed (patch)
treef7f8d701fa318b856bb99c801f0b3e62ed33873d /clang-tools-extra/cpp11-migrate/LoopConvert
parent197af31aba9208e35b153d7f3caad8cc819d2ff2 (diff)
downloadbcm5719-llvm-ebde78c4c6149dfd6dfcddd39ed07e5aec1860ed.tar.gz
bcm5719-llvm-ebde78c4c6149dfd6dfcddd39ed07e5aec1860ed.zip
cpp11-migrate: Register the transforms automatically using llvm::Registry
With this change each transform now register a factory. The factories are registered using an llvm::Registry which makes them available globally. llvm-svn: 187041
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/LoopConvert')
-rw-r--r--clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp
index cffc188bce1..965ae4b25d0 100644
--- a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp
+++ b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp
@@ -66,3 +66,17 @@ int LoopConvertTransform::apply(FileOverrides &InputStates,
return 0;
}
+
+struct LoopConvertFactory : TransformFactory {
+ Transform *createTransform(const TransformOptions &Opts) LLVM_OVERRIDE {
+ return new LoopConvertTransform(Opts);
+ }
+};
+
+// Register the factory using this statically initialized variable.
+static TransformFactoryRegistry::Add<LoopConvertFactory>
+X("loop-convert", "Make use of range-based for loops where possible");
+
+// This anchor is used to force the linker to link in the generated object file
+// and thus register the factory.
+volatile int LoopConvertTransformAnchorSource = 0;
OpenPOWER on IntegriCloud