1 | // RUN: %check_clang_tidy %s google-runtime-int %t |
2 | |
3 | long a(); |
4 | // CHECK-MESSAGES: [[@LINE-1]]:1: warning: consider replacing 'long' with 'int{{..}}' |
5 | |
6 | typedef unsigned long long uint64; // NOLINT |
7 | |
8 | long b(long = 1); |
9 | // CHECK-MESSAGES: [[@LINE-1]]:1: warning: consider replacing 'long' with 'int{{..}}' |
10 | // CHECK-MESSAGES: [[@LINE-2]]:8: warning: consider replacing 'long' with 'int{{..}}' |
11 | |
12 | template <typename T> |
13 | void tmpl() { |
14 | T i; |
15 | } |
16 | |
17 | short bar(const short, unsigned short) { |
18 | // CHECK-MESSAGES: [[@LINE-1]]:1: warning: consider replacing 'short' with 'int16' |
19 | // CHECK-MESSAGES: [[@LINE-2]]:17: warning: consider replacing 'short' with 'int16' |
20 | // CHECK-MESSAGES: [[@LINE-3]]:24: warning: consider replacing 'unsigned short' with 'uint16' |
21 | long double foo = 42; |
22 | uint64 qux = 42; |
23 | unsigned short port; |
24 | |
25 | const unsigned short bar = 0; |
26 | // CHECK-MESSAGES: [[@LINE-1]]:9: warning: consider replacing 'unsigned short' with 'uint16' |
27 | long long *baar; |
28 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'long long' with 'int64' |
29 | const unsigned short &bara = bar; |
30 | // CHECK-MESSAGES: [[@LINE-1]]:9: warning: consider replacing 'unsigned short' with 'uint16' |
31 | long const long moo = 1; |
32 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'long long' with 'int64' |
33 | long volatile long wat = 42; |
34 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'long long' with 'int64' |
35 | unsigned long y; |
36 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'unsigned long' with 'uint{{..}}' |
37 | unsigned long long **const *tmp; |
38 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'unsigned long long' with 'uint64' |
39 | unsigned long long **const *&z = tmp; |
40 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'unsigned long long' with 'uint64' |
41 | unsigned short porthole; |
42 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'unsigned short' with 'uint16' |
43 | |
44 | uint64 cast = (short)42; |
45 | // CHECK-MESSAGES: [[@LINE-1]]:18: warning: consider replacing 'short' with 'int16' |
46 | |
47 | #define l long |
48 | l x; |
49 | |
50 | tmpl<short>(); |
51 | // CHECK-MESSAGES: [[@LINE-1]]:8: warning: consider replacing 'short' with 'int16' |
52 | return 0; |
53 | } |
54 | |
55 | void p(unsigned short port); |
56 | |
57 | void qux() { |
58 | short port; |
59 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'short' with 'int16' |
60 | } |
61 | |
62 | struct some_value {}; |
63 | constexpr some_value operator"" _some_literal(unsigned long long int i) |
64 | { |
65 | short j; |
66 | // CHECK-MESSAGES: [[@LINE-1]]:3: warning: consider replacing 'short' with 'int16' |
67 | return some_value(); |
68 | } |
69 | |
70 | struct A { A& operator=(const A&); }; |
71 | class B { A a[0]; }; |
72 | |
73 | void fff() { |
74 | B a, b; |
75 | a = b; |
76 | } |
77 | |
78 | __attribute__((__format__ (__printf__, 1, 2))) |
79 | void myprintf(const char* s, ...); |
80 | |
81 | void doprint_no_warning() { |
82 | uint64 foo = 23; |
83 | myprintf(s: "foo %lu %lu" , (unsigned long)42, (unsigned long)foo); |
84 | } |
85 | |
86 | void myprintf_no_attribute(const char* s, ...); |
87 | |
88 | void doprint_warning() { |
89 | uint64 foo = 23; |
90 | myprintf_no_attribute(s: "foo %lu %lu" , (unsigned long)42, (unsigned long)foo); |
91 | // CHECK-MESSAGES: [[@LINE-1]]:41: warning: consider replacing 'unsigned long' |
92 | // CHECK-MESSAGES: [[@LINE-2]]:60: warning: consider replacing 'unsigned long' |
93 | } |
94 | |