From ebde78c4c6149dfd6dfcddd39ed07e5aec1860ed Mon Sep 17 00:00:00 2001 From: Guillaume Papin Date: Wed, 24 Jul 2013 14:24:33 +0000 Subject: 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 --- .../cpp11-migrate/LoopConvert/LoopConvert.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp') 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 +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; -- cgit v1.2.3