15b4f6404SDaniel Sanders //===--- PreferRegisterOverUnsignedCheck.h - clang-tidy ---------*- C++ -*-===// 25b4f6404SDaniel Sanders // 35b4f6404SDaniel Sanders // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45b4f6404SDaniel Sanders // See https://llvm.org/LICENSE.txt for license information. 55b4f6404SDaniel Sanders // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65b4f6404SDaniel Sanders // 75b4f6404SDaniel Sanders //===----------------------------------------------------------------------===// 85b4f6404SDaniel Sanders 95b4f6404SDaniel Sanders #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVM_PREFERREGISTEROVERUNSIGNEDCHECK_H 105b4f6404SDaniel Sanders #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVM_PREFERREGISTEROVERUNSIGNEDCHECK_H 115b4f6404SDaniel Sanders 125b4f6404SDaniel Sanders #include "../ClangTidyCheck.h" 135b4f6404SDaniel Sanders 14*4718da50SCarlos Galvez namespace clang::tidy::llvm_check { 155b4f6404SDaniel Sanders 165b4f6404SDaniel Sanders /// Historically, LLVM has used `unsigned` to represent registers. Since then 175b4f6404SDaniel Sanders /// a `Register` object has been introduced for improved type-safety and make 185b4f6404SDaniel Sanders /// the code more explicit. 195b4f6404SDaniel Sanders /// 205b4f6404SDaniel Sanders /// For the user-facing documentation see: 216e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/llvm/prefer-register-over-unsigned.html 225b4f6404SDaniel Sanders class PreferRegisterOverUnsignedCheck : public ClangTidyCheck { 235b4f6404SDaniel Sanders public: PreferRegisterOverUnsignedCheck(StringRef Name,ClangTidyContext * Context)245b4f6404SDaniel Sanders PreferRegisterOverUnsignedCheck(StringRef Name, ClangTidyContext *Context) 255b4f6404SDaniel Sanders : ClangTidyCheck(Name, Context) {} 265b4f6404SDaniel Sanders void registerMatchers(ast_matchers::MatchFinder *Finder) override; 275b4f6404SDaniel Sanders void check(const ast_matchers::MatchFinder::MatchResult &Result) override; 285b4f6404SDaniel Sanders }; 295b4f6404SDaniel Sanders 30*4718da50SCarlos Galvez } // namespace clang::tidy::llvm_check 315b4f6404SDaniel Sanders 325b4f6404SDaniel Sanders #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVM_PREFERREGISTEROVERUNSIGNEDCHECK_H 33