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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "clang-tidy/ClangTidyModule.h" 10 #include "clang-tidy/ClangTidyModuleRegistry.h" 11 12 #include "abi_tag_on_virtual.hpp" 13 #include "header_exportable_declarations.hpp" 14 #include "hide_from_abi.hpp" 15 #include "internal_ftm_use.hpp" 16 #include "nodebug_on_aliases.hpp" 17 #include "proper_version_checks.hpp" 18 #include "qualify_declval.hpp" 19 #include "robust_against_adl.hpp" 20 #include "uglify_attributes.hpp" 21 22 namespace { 23 class LibcxxTestModule : public clang::tidy::ClangTidyModule { 24 public: 25 void addCheckFactories(clang::tidy::ClangTidyCheckFactories& check_factories) override { 26 check_factories.registerCheck<libcpp::abi_tag_on_virtual>("libcpp-avoid-abi-tag-on-virtual"); 27 check_factories.registerCheck<libcpp::header_exportable_declarations>("libcpp-header-exportable-declarations"); 28 check_factories.registerCheck<libcpp::hide_from_abi>("libcpp-hide-from-abi"); 29 check_factories.registerCheck<libcpp::internal_ftm_use>("libcpp-internal-ftms"); 30 check_factories.registerCheck<libcpp::nodebug_on_aliases>("libcpp-nodebug-on-aliases"); 31 check_factories.registerCheck<libcpp::proper_version_checks>("libcpp-cpp-version-check"); 32 check_factories.registerCheck<libcpp::robust_against_adl_check>("libcpp-robust-against-adl"); 33 check_factories.registerCheck<libcpp::uglify_attributes>("libcpp-uglify-attributes"); 34 check_factories.registerCheck<libcpp::qualify_declval>("libcpp-qualify-declval"); 35 } 36 }; 37 } // namespace 38 39 clang::tidy::ClangTidyModuleRegistry::Add<LibcxxTestModule> libcpp_module{ 40 "libcpp-module", "Adds libc++-specific checks."}; 41