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