diff options
| author | Guillaume Papin <guillaume.papin@epitech.eu> | 2013-07-24 14:24:33 +0000 |
|---|---|---|
| committer | Guillaume Papin <guillaume.papin@epitech.eu> | 2013-07-24 14:24:33 +0000 |
| commit | ebde78c4c6149dfd6dfcddd39ed07e5aec1860ed (patch) | |
| tree | f7f8d701fa318b856bb99c801f0b3e62ed33873d /clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp | |
| parent | 197af31aba9208e35b153d7f3caad8cc819d2ff2 (diff) | |
| download | bcm5719-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/tool/Cpp11Migrate.cpp')
| -rw-r--r-- | clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp b/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp index b5b6a410ab0..2ee4a069ff3 100644 --- a/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp +++ b/clang-tools-extra/cpp11-migrate/tool/Cpp11Migrate.cpp @@ -21,11 +21,6 @@ #include "Core/Transform.h" #include "Core/Transforms.h" #include "Core/Reformatting.h" -#include "LoopConvert/LoopConvert.h" -#include "UseNullptr/UseNullptr.h" -#include "UseAuto/UseAuto.h" -#include "AddOverride/AddOverride.h" -#include "ReplaceAutoPtr/ReplaceAutoPtr.h" #include "clang/Frontend/FrontendActions.h" #include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Tooling.h" @@ -156,23 +151,7 @@ int main(int argc, const char **argv) { llvm::sys::PrintStackTraceOnErrorSignal(); Transforms TransformManager; - TransformManager.registerTransform( - "loop-convert", "Make use of range-based for loops where possible", - &ConstructTransform<LoopConvertTransform>); - TransformManager.registerTransform( - "use-nullptr", "Make use of nullptr keyword where possible", - &ConstructTransform<UseNullptrTransform>); - TransformManager.registerTransform( - "use-auto", "Use of 'auto' type specifier", - &ConstructTransform<UseAutoTransform>); - TransformManager.registerTransform( - "add-override", "Make use of override specifier where possible", - &ConstructTransform<AddOverrideTransform>); - TransformManager.registerTransform( - "replace-auto_ptr", "Replace auto_ptr (deprecated) by unique_ptr" - " (EXPERIMENTAL)", - &ConstructTransform<ReplaceAutoPtrTransform>); - // Add more transform options here. + TransformManager.registerTransforms(); // This causes options to be parsed. CommonOptionsParser OptionsParser(argc, argv); @@ -293,3 +272,18 @@ int main(int argc, const char **argv) { return 0; } + +// These anchors are used to force the linker to link the transforms +extern volatile int AddOverrideTransformAnchorSource; +extern volatile int LoopConvertTransformAnchorSource; +extern volatile int ReplaceAutoPtrTransformAnchorSource; +extern volatile int UseAutoTransformAnchorSource; +extern volatile int UseNullptrTransformAnchorSource; + +static int TransformsAnchorsDestination[] = { + AddOverrideTransformAnchorSource, + LoopConvertTransformAnchorSource, + ReplaceAutoPtrTransformAnchorSource, + UseAutoTransformAnchorSource, + UseNullptrTransformAnchorSource +}; |

