86 lines · cpp
1//===----------------------------------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "../ClangTidy.h"10#include "../ClangTidyModule.h"11#include "../ClangTidyModuleRegistry.h"12#include "CleanupCtadCheck.h"13#include "DurationAdditionCheck.h"14#include "DurationComparisonCheck.h"15#include "DurationConversionCastCheck.h"16#include "DurationDivisionCheck.h"17#include "DurationFactoryFloatCheck.h"18#include "DurationFactoryScaleCheck.h"19#include "DurationSubtractionCheck.h"20#include "DurationUnnecessaryConversionCheck.h"21#include "FasterStrsplitDelimiterCheck.h"22#include "NoInternalDependenciesCheck.h"23#include "NoNamespaceCheck.h"24#include "RedundantStrcatCallsCheck.h"25#include "StrCatAppendCheck.h"26#include "StringFindStartswithCheck.h"27#include "StringFindStrContainsCheck.h"28#include "TimeComparisonCheck.h"29#include "TimeSubtractionCheck.h"30#include "UpgradeDurationConversionsCheck.h"31 32namespace clang::tidy {33namespace abseil {34 35class AbseilModule : public ClangTidyModule {36public:37 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {38 CheckFactories.registerCheck<CleanupCtadCheck>("abseil-cleanup-ctad");39 CheckFactories.registerCheck<DurationAdditionCheck>(40 "abseil-duration-addition");41 CheckFactories.registerCheck<DurationComparisonCheck>(42 "abseil-duration-comparison");43 CheckFactories.registerCheck<DurationConversionCastCheck>(44 "abseil-duration-conversion-cast");45 CheckFactories.registerCheck<DurationDivisionCheck>(46 "abseil-duration-division");47 CheckFactories.registerCheck<DurationFactoryFloatCheck>(48 "abseil-duration-factory-float");49 CheckFactories.registerCheck<DurationFactoryScaleCheck>(50 "abseil-duration-factory-scale");51 CheckFactories.registerCheck<DurationSubtractionCheck>(52 "abseil-duration-subtraction");53 CheckFactories.registerCheck<DurationUnnecessaryConversionCheck>(54 "abseil-duration-unnecessary-conversion");55 CheckFactories.registerCheck<FasterStrsplitDelimiterCheck>(56 "abseil-faster-strsplit-delimiter");57 CheckFactories.registerCheck<NoInternalDependenciesCheck>(58 "abseil-no-internal-dependencies");59 CheckFactories.registerCheck<NoNamespaceCheck>("abseil-no-namespace");60 CheckFactories.registerCheck<RedundantStrcatCallsCheck>(61 "abseil-redundant-strcat-calls");62 CheckFactories.registerCheck<StrCatAppendCheck>("abseil-str-cat-append");63 CheckFactories.registerCheck<StringFindStartswithCheck>(64 "abseil-string-find-startswith");65 CheckFactories.registerCheck<StringFindStrContainsCheck>(66 "abseil-string-find-str-contains");67 CheckFactories.registerCheck<TimeComparisonCheck>("abseil-time-comparison");68 CheckFactories.registerCheck<TimeSubtractionCheck>(69 "abseil-time-subtraction");70 CheckFactories.registerCheck<UpgradeDurationConversionsCheck>(71 "abseil-upgrade-duration-conversions");72 }73};74 75// Register the AbseilModule using this statically initialized variable.76static ClangTidyModuleRegistry::Add<AbseilModule> X("abseil-module",77 "Add Abseil checks.");78 79} // namespace abseil80 81// This anchor is used to force the linker to link in the generated object file82// and thus register the AbseilModule.83volatile int AbseilModuleAnchorSource = 0; // NOLINT(misc-use-internal-linkage)84 85} // namespace clang::tidy86