136206206SYan Wang //===--- AndroidTidyModule.cpp - clang-tidy--------------------------------===// 236206206SYan Wang // 336206206SYan Wang // The LLVM Compiler Infrastructure 436206206SYan Wang // 536206206SYan Wang // This file is distributed under the University of Illinois Open Source 636206206SYan Wang // License. See LICENSE.TXT for details. 736206206SYan Wang // 836206206SYan Wang //===----------------------------------------------------------------------===// 936206206SYan Wang 1036206206SYan Wang #include "../ClangTidy.h" 1136206206SYan Wang #include "../ClangTidyModule.h" 1236206206SYan Wang #include "../ClangTidyModuleRegistry.h" 130b974147SYan Wang #include "CloexecCreatCheck.h" 1424340252SYan Wang #include "CloexecFopenCheck.h" 15*b21739f9SYan Wang #include "CloexecMemfdCreateCheck.h" 16600a6133SYan Wang #include "CloexecOpenCheck.h" 17b38045d0SYan Wang #include "CloexecSocketCheck.h" 1836206206SYan Wang 1936206206SYan Wang using namespace clang::ast_matchers; 2036206206SYan Wang 2136206206SYan Wang namespace clang { 2236206206SYan Wang namespace tidy { 2336206206SYan Wang namespace android { 2436206206SYan Wang 2536206206SYan Wang /// This module is for Android specific checks. 2636206206SYan Wang class AndroidModule : public ClangTidyModule { 2736206206SYan Wang public: 2836206206SYan Wang void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { 290b974147SYan Wang CheckFactories.registerCheck<CloexecCreatCheck>("android-cloexec-creat"); 3024340252SYan Wang CheckFactories.registerCheck<CloexecFopenCheck>("android-cloexec-fopen"); 31*b21739f9SYan Wang CheckFactories.registerCheck<CloexecMemfdCreateCheck>( 32*b21739f9SYan Wang "android-cloexec-memfd-create"); 33600a6133SYan Wang CheckFactories.registerCheck<CloexecOpenCheck>("android-cloexec-open"); 34b38045d0SYan Wang CheckFactories.registerCheck<CloexecSocketCheck>("android-cloexec-socket"); 3536206206SYan Wang } 3636206206SYan Wang }; 3736206206SYan Wang 3836206206SYan Wang // Register the AndroidTidyModule using this statically initialized variable. 3936206206SYan Wang static ClangTidyModuleRegistry::Add<AndroidModule> 4036206206SYan Wang X("android-module", "Adds Android platform checks."); 4136206206SYan Wang 4236206206SYan Wang } // namespace android 4336206206SYan Wang 4436206206SYan Wang // This anchor is used to force the linker to link in the generated object file 4536206206SYan Wang // and thus register the AndroidModule. 4636206206SYan Wang volatile int AndroidModuleAnchorSource = 0; 4736206206SYan Wang 4836206206SYan Wang } // namespace tidy 4936206206SYan Wang } // namespace clang 50