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" 15600a6133SYan Wang #include "CloexecOpenCheck.h" 16*b38045d0SYan Wang #include "CloexecSocketCheck.h" 1736206206SYan Wang 1836206206SYan Wang using namespace clang::ast_matchers; 1936206206SYan Wang 2036206206SYan Wang namespace clang { 2136206206SYan Wang namespace tidy { 2236206206SYan Wang namespace android { 2336206206SYan Wang 2436206206SYan Wang /// This module is for Android specific checks. 2536206206SYan Wang class AndroidModule : public ClangTidyModule { 2636206206SYan Wang public: 2736206206SYan Wang void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { 280b974147SYan Wang CheckFactories.registerCheck<CloexecCreatCheck>("android-cloexec-creat"); 2924340252SYan Wang CheckFactories.registerCheck<CloexecFopenCheck>("android-cloexec-fopen"); 30600a6133SYan Wang CheckFactories.registerCheck<CloexecOpenCheck>("android-cloexec-open"); 31*b38045d0SYan Wang CheckFactories.registerCheck<CloexecSocketCheck>("android-cloexec-socket"); 3236206206SYan Wang } 3336206206SYan Wang }; 3436206206SYan Wang 3536206206SYan Wang // Register the AndroidTidyModule using this statically initialized variable. 3636206206SYan Wang static ClangTidyModuleRegistry::Add<AndroidModule> 3736206206SYan Wang X("android-module", "Adds Android platform checks."); 3836206206SYan Wang 3936206206SYan Wang } // namespace android 4036206206SYan Wang 4136206206SYan Wang // This anchor is used to force the linker to link in the generated object file 4236206206SYan Wang // and thus register the AndroidModule. 4336206206SYan Wang volatile int AndroidModuleAnchorSource = 0; 4436206206SYan Wang 4536206206SYan Wang } // namespace tidy 4636206206SYan Wang } // namespace clang 47