| //===--- FuchsiaTidyModule.cpp - clang-tidy -------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "../ClangTidy.h" |
| #include "../ClangTidyModule.h" |
| #include "../ClangTidyModuleRegistry.h" |
| #include "../google/UnnamedNamespaceInHeaderCheck.h" |
| #include "DefaultArgumentsCallsCheck.h" |
| #include "DefaultArgumentsDeclarationsCheck.h" |
| #include "MultipleInheritanceCheck.h" |
| #include "OverloadedOperatorCheck.h" |
| #include "StaticallyConstructedObjectsCheck.h" |
| #include "TrailingReturnCheck.h" |
| #include "VirtualInheritanceCheck.h" |
| |
| using namespace clang::ast_matchers; |
| |
| namespace clang { |
| namespace tidy { |
| namespace fuchsia { |
| |
| /// This module is for Fuchsia-specific checks. |
| class FuchsiaModule : public ClangTidyModule { |
| public: |
| void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { |
| CheckFactories.registerCheck<DefaultArgumentsCallsCheck>( |
| "fuchsia-default-arguments-calls"); |
| CheckFactories.registerCheck<DefaultArgumentsDeclarationsCheck>( |
| "fuchsia-default-arguments-declarations"); |
| CheckFactories.registerCheck<google::build::UnnamedNamespaceInHeaderCheck>( |
| "fuchsia-header-anon-namespaces"); |
| CheckFactories.registerCheck<MultipleInheritanceCheck>( |
| "fuchsia-multiple-inheritance"); |
| CheckFactories.registerCheck<OverloadedOperatorCheck>( |
| "fuchsia-overloaded-operator"); |
| CheckFactories.registerCheck<StaticallyConstructedObjectsCheck>( |
| "fuchsia-statically-constructed-objects"); |
| CheckFactories.registerCheck<TrailingReturnCheck>( |
| "fuchsia-trailing-return"); |
| CheckFactories.registerCheck<VirtualInheritanceCheck>( |
| "fuchsia-virtual-inheritance"); |
| } |
| }; |
| // Register the FuchsiaTidyModule using this statically initialized variable. |
| static ClangTidyModuleRegistry::Add<FuchsiaModule> |
| X("fuchsia-module", "Adds Fuchsia platform checks."); |
| } // namespace fuchsia |
| |
| // This anchor is used to force the linker to link in the generated object file |
| // and thus register the FuchsiaModule. |
| volatile int FuchsiaModuleAnchorSource = 0; |
| |
| } // namespace tidy |
| } // namespace clang |