xref: /llvm-project/clang-tools-extra/clang-tidy/llvm/PreferRegisterOverUnsignedCheck.h (revision 4718da506091a37ca4863d979bc541e359b79b10)
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