xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/llvm/prefer-register-over-unsigned2.cpp (revision 89a1d03e2b379e325daa5249411e414bbd995b5e)
1*89a1d03eSRichard // RUN: %check_clang_tidy %s llvm-prefer-register-over-unsigned %t
2*89a1d03eSRichard 
3*89a1d03eSRichard namespace llvm {
4*89a1d03eSRichard class Register {
5*89a1d03eSRichard public:
6*89a1d03eSRichard   operator unsigned();
7*89a1d03eSRichard };
8*89a1d03eSRichard } // end namespace llvm
9*89a1d03eSRichard 
10*89a1d03eSRichard llvm::Register getReg();
11*89a1d03eSRichard 
12*89a1d03eSRichard using namespace llvm;
13*89a1d03eSRichard 
apply_1()14*89a1d03eSRichard void apply_1() {
15*89a1d03eSRichard   unsigned Reg = getReg();
16*89a1d03eSRichard   // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 'Reg' declared as 'unsigned int'; use 'Register' instead [llvm-prefer-register-over-unsigned]
17*89a1d03eSRichard   // CHECK-FIXES: apply_1()
18*89a1d03eSRichard   // CHECK-FIXES-NEXT: Register Reg = getReg();
19*89a1d03eSRichard }
20*89a1d03eSRichard 
done_1()21*89a1d03eSRichard void done_1() {
22*89a1d03eSRichard   llvm::Register Reg = getReg();
23*89a1d03eSRichard   // CHECK-FIXES: done_1()
24*89a1d03eSRichard   // CHECK-FIXES-NEXT: llvm::Register Reg = getReg();
25*89a1d03eSRichard }
26