AbseilTidyModule.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //===------- AbseilTidyModule.cpp - clang-tidy ----------------------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. #include "../ClangTidy.h"
  9. #include "../ClangTidyModule.h"
  10. #include "../ClangTidyModuleRegistry.h"
  11. #include "CleanupCtadCheck.h"
  12. #include "DurationAdditionCheck.h"
  13. #include "DurationComparisonCheck.h"
  14. #include "DurationConversionCastCheck.h"
  15. #include "DurationDivisionCheck.h"
  16. #include "DurationFactoryFloatCheck.h"
  17. #include "DurationFactoryScaleCheck.h"
  18. #include "DurationSubtractionCheck.h"
  19. #include "DurationUnnecessaryConversionCheck.h"
  20. #include "FasterStrsplitDelimiterCheck.h"
  21. #include "NoInternalDependenciesCheck.h"
  22. #include "NoNamespaceCheck.h"
  23. #include "RedundantStrcatCallsCheck.h"
  24. #include "StrCatAppendCheck.h"
  25. #include "StringFindStartswithCheck.h"
  26. #include "StringFindStrContainsCheck.h"
  27. #include "TimeComparisonCheck.h"
  28. #include "TimeSubtractionCheck.h"
  29. #include "UpgradeDurationConversionsCheck.h"
  30. namespace clang::tidy {
  31. namespace abseil {
  32. class AbseilModule : public ClangTidyModule {
  33. public:
  34. void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
  35. CheckFactories.registerCheck<CleanupCtadCheck>("abseil-cleanup-ctad");
  36. CheckFactories.registerCheck<DurationAdditionCheck>(
  37. "abseil-duration-addition");
  38. CheckFactories.registerCheck<DurationComparisonCheck>(
  39. "abseil-duration-comparison");
  40. CheckFactories.registerCheck<DurationConversionCastCheck>(
  41. "abseil-duration-conversion-cast");
  42. CheckFactories.registerCheck<DurationDivisionCheck>(
  43. "abseil-duration-division");
  44. CheckFactories.registerCheck<DurationFactoryFloatCheck>(
  45. "abseil-duration-factory-float");
  46. CheckFactories.registerCheck<DurationFactoryScaleCheck>(
  47. "abseil-duration-factory-scale");
  48. CheckFactories.registerCheck<DurationSubtractionCheck>(
  49. "abseil-duration-subtraction");
  50. CheckFactories.registerCheck<DurationUnnecessaryConversionCheck>(
  51. "abseil-duration-unnecessary-conversion");
  52. CheckFactories.registerCheck<FasterStrsplitDelimiterCheck>(
  53. "abseil-faster-strsplit-delimiter");
  54. CheckFactories.registerCheck<NoInternalDependenciesCheck>(
  55. "abseil-no-internal-dependencies");
  56. CheckFactories.registerCheck<NoNamespaceCheck>("abseil-no-namespace");
  57. CheckFactories.registerCheck<RedundantStrcatCallsCheck>(
  58. "abseil-redundant-strcat-calls");
  59. CheckFactories.registerCheck<StrCatAppendCheck>(
  60. "abseil-str-cat-append");
  61. CheckFactories.registerCheck<StringFindStartswithCheck>(
  62. "abseil-string-find-startswith");
  63. CheckFactories.registerCheck<StringFindStrContainsCheck>(
  64. "abseil-string-find-str-contains");
  65. CheckFactories.registerCheck<TimeComparisonCheck>(
  66. "abseil-time-comparison");
  67. CheckFactories.registerCheck<TimeSubtractionCheck>(
  68. "abseil-time-subtraction");
  69. CheckFactories.registerCheck<UpgradeDurationConversionsCheck>(
  70. "abseil-upgrade-duration-conversions");
  71. }
  72. };
  73. // Register the AbseilModule using this statically initialized variable.
  74. static ClangTidyModuleRegistry::Add<AbseilModule> X("abseil-module",
  75. "Add Abseil checks.");
  76. } // namespace abseil
  77. // This anchor is used to force the linker to link in the generated object file
  78. // and thus register the AbseilModule.
  79. volatile int AbseilModuleAnchorSource = 0;
  80. } // namespace clang::tidy