1512767ebSKim Viggedal //===--- AvoidNonConstGlobalVariablesCheck.h - clang-tidy -------*- C++ -*-===// 2512767ebSKim Viggedal // 3512767ebSKim Viggedal // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4512767ebSKim Viggedal // See https://llvm.org/LICENSE.txt for license information. 5512767ebSKim Viggedal // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6512767ebSKim Viggedal // 7512767ebSKim Viggedal //===----------------------------------------------------------------------===// 8512767ebSKim Viggedal 9512767ebSKim Viggedal #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_AVOIDNONCONSTGLOBALVARIABLESCHECK_H 10512767ebSKim Viggedal #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_AVOIDNONCONSTGLOBALVARIABLESCHECK_H 11512767ebSKim Viggedal 12512767ebSKim Viggedal #include "../ClangTidyCheck.h" 13512767ebSKim Viggedal 144718da50SCarlos Galvez namespace clang::tidy::cppcoreguidelines { 15512767ebSKim Viggedal 16512767ebSKim Viggedal /// Non-const global variables hide dependencies and make the dependencies 17512767ebSKim Viggedal /// subject to unpredictable changes. 18512767ebSKim Viggedal /// 19512767ebSKim Viggedal /// For the user-facing documentation see: 206e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.html 21512767ebSKim Viggedal class AvoidNonConstGlobalVariablesCheck : public ClangTidyCheck { 22512767ebSKim Viggedal public: 23*7c50187bSPascal Jungblut AvoidNonConstGlobalVariablesCheck(StringRef Name, ClangTidyContext *Context); 24512767ebSKim Viggedal void registerMatchers(ast_matchers::MatchFinder *Finder) override; 25512767ebSKim Viggedal void check(const ast_matchers::MatchFinder::MatchResult &Result) override; 26*7c50187bSPascal Jungblut void storeOptions(ClangTidyOptions::OptionMap &Opts) override; 27*7c50187bSPascal Jungblut 28*7c50187bSPascal Jungblut private: 29*7c50187bSPascal Jungblut const bool AllowInternalLinkage; 30512767ebSKim Viggedal }; 31512767ebSKim Viggedal 324718da50SCarlos Galvez } // namespace clang::tidy::cppcoreguidelines 33512767ebSKim Viggedal 34512767ebSKim Viggedal #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_AVOIDNONCONSTGLOBALVARIABLESCHECK_H 35