1b9ca972bSFangrui Song //===--- StdAllocatorConstT.h - clang-tidy -----------------------*- C++-*-===// 2b9ca972bSFangrui Song // 3b9ca972bSFangrui Song // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4b9ca972bSFangrui Song // See https://llvm.org/LICENSE.txt for license information. 5b9ca972bSFangrui Song // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6b9ca972bSFangrui Song // 7b9ca972bSFangrui Song //===----------------------------------------------------------------------===// 8b9ca972bSFangrui Song 9b9ca972bSFangrui Song #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PORTABILITY_STDALLOCATORCONSTCHECK_H 10b9ca972bSFangrui Song #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PORTABILITY_STDALLOCATORCONSTCHECK_H 11b9ca972bSFangrui Song 12b9ca972bSFangrui Song #include "../ClangTidyCheck.h" 13b9ca972bSFangrui Song 14*4718da50SCarlos Galvez namespace clang::tidy::portability { 15b9ca972bSFangrui Song 16b9ca972bSFangrui Song /// Report use of ``std::vector<const T>`` (and similar containers of const 17b9ca972bSFangrui Song /// elements). These are not allowed in standard C++ due to undefined 18b9ca972bSFangrui Song /// ``std::allocator<const T>``. They do not compile with libstdc++ or MSVC. 19b9ca972bSFangrui Song /// 20b9ca972bSFangrui Song /// For the user-facing documentation see: 216e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/portability/std-allocator-const.html 22b9ca972bSFangrui Song class StdAllocatorConstCheck : public ClangTidyCheck { 23b9ca972bSFangrui Song public: StdAllocatorConstCheck(StringRef Name,ClangTidyContext * Context)24b9ca972bSFangrui Song StdAllocatorConstCheck(StringRef Name, ClangTidyContext *Context) 25b9ca972bSFangrui Song : ClangTidyCheck(Name, Context) {} 26b9ca972bSFangrui Song 27b9ca972bSFangrui Song void registerMatchers(ast_matchers::MatchFinder *Finder) override; 28b9ca972bSFangrui Song void check(const ast_matchers::MatchFinder::MatchResult &Result) override; 29b9ca972bSFangrui Song }; 30b9ca972bSFangrui Song 31*4718da50SCarlos Galvez } // namespace clang::tidy::portability 32b9ca972bSFangrui Song 33b9ca972bSFangrui Song #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PORTABILITY_STDALLOCATORCONSTCHECK_H 34