xref: /llvm-project/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.h (revision 4718da506091a37ca4863d979bc541e359b79b10)
100a57558SPaula Toth //===--- ImplementationInNamespaceCheck.h - clang-tidy ----------*- C++ -*-===//
200a57558SPaula Toth //
300a57558SPaula Toth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
400a57558SPaula Toth // See https://llvm.org/LICENSE.txt for license information.
500a57558SPaula Toth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
600a57558SPaula Toth //
700a57558SPaula Toth //===----------------------------------------------------------------------===//
800a57558SPaula Toth 
900a57558SPaula Toth #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVMLIBC_IMPLEMENTATIONINNAMESPACECHECK_H
1000a57558SPaula Toth #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVMLIBC_IMPLEMENTATIONINNAMESPACECHECK_H
1100a57558SPaula Toth 
1200a57558SPaula Toth #include "../ClangTidyCheck.h"
1300a57558SPaula Toth 
14*4718da50SCarlos Galvez namespace clang::tidy::llvm_libc {
1500a57558SPaula Toth 
1600a57558SPaula Toth /// Checks all llvm-libc implementation is within the correct namespace.
1700a57558SPaula Toth ///
1800a57558SPaula Toth /// For the user-facing documentation see:
196e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/llvmlibc/implementation-in-namespace.html
2000a57558SPaula Toth class ImplementationInNamespaceCheck : public ClangTidyCheck {
2100a57558SPaula Toth public:
ImplementationInNamespaceCheck(StringRef Name,ClangTidyContext * Context)2200a57558SPaula Toth   ImplementationInNamespaceCheck(StringRef Name, ClangTidyContext *Context)
2300a57558SPaula Toth       : ClangTidyCheck(Name, Context) {}
2400a57558SPaula Toth 
isLanguageVersionSupported(const LangOptions & LangOpts)2500a57558SPaula Toth   bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
2600a57558SPaula Toth     return LangOpts.CPlusPlus;
2700a57558SPaula Toth   }
2800a57558SPaula Toth   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
2900a57558SPaula Toth   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
3000a57558SPaula Toth };
3100a57558SPaula Toth 
32*4718da50SCarlos Galvez } // namespace clang::tidy::llvm_libc
3300a57558SPaula Toth 
3400a57558SPaula Toth #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVMLIBC_IMPLEMENTATIONINNAMESPACECHECK_H
35