1 // RUN: %clang_cc1 -triple i686-pc-linux-gnu -fsyntax-only -verify %s -Wabsolute-value -std=c++11
2 // RUN: %clang_cc1 -triple i686-pc-linux-gnu -fsyntax-only %s -Wabsolute-value -fdiagnostics-parseable-fixits -std=c++11 2>&1 | FileCheck %s
3
4 extern "C" {
5 int abs(int);
6 long int labs(long int);
7 long long int llabs(long long int);
8
9 float fabsf(float);
10 double fabs(double);
11 long double fabsl(long double);
12
13 float cabsf(float _Complex);
14 double cabs(double _Complex);
15 long double cabsl(long double _Complex);
16 }
17
18 namespace std {
19
20 inline namespace __1 {
21 int abs(int);
22 long int abs(long int);
23 long long int abs(long long int);
24 }
25
26 float abs(float);
27 double abs(double);
28 long double abs(long double);
29
30 template <typename T>
31 double abs(T);
32
33 }
34
test_int(int x)35 void test_int(int x) {
36 (void)std::abs(x);
37
38 (void)abs(x);
39 (void)labs(x);
40 (void)llabs(x);
41
42 (void)fabsf(x);
43 // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of integer type}}
44 // expected-note@-2 {{use function 'std::abs' instead}}
45 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
46 (void)fabs(x);
47 // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of integer type}}
48 // expected-note@-2 {{use function 'std::abs' instead}}
49 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
50 (void)fabsl(x);
51 // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of integer type}}
52 // expected-note@-2 {{use function 'std::abs' instead}}
53 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
54
55 (void)cabsf(x);
56 // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of integer type}}
57 // expected-note@-2 {{use function 'std::abs' instead}}
58 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
59 (void)cabs(x);
60 // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of integer type}}
61 // expected-note@-2 {{use function 'std::abs' instead}}
62 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
63 (void)cabsl(x);
64 // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of integer type}}
65 // expected-note@-2 {{use function 'std::abs' instead}}
66 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
67
68 (void)__builtin_abs(x);
69 (void)__builtin_labs(x);
70 (void)__builtin_llabs(x);
71
72 (void)__builtin_fabsf(x);
73 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of integer type}}
74 // expected-note@-2 {{use function 'std::abs' instead}}
75 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
76 (void)__builtin_fabs(x);
77 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of integer type}}
78 // expected-note@-2 {{use function 'std::abs' instead}}
79 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
80 (void)__builtin_fabsl(x);
81 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of integer type}}
82 // expected-note@-2 {{use function 'std::abs' instead}}
83 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
84
85 (void)__builtin_cabsf(x);
86 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of integer type}}
87 // expected-note@-2 {{use function 'std::abs' instead}}
88 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
89 (void)__builtin_cabs(x);
90 // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of integer type}}
91 // expected-note@-2 {{use function 'std::abs' instead}}
92 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
93 (void)__builtin_cabsl(x);
94 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of integer type}}
95 // expected-note@-2 {{use function 'std::abs' instead}}
96 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
97 }
98
test_long(long x)99 void test_long(long x) {
100 (void)std::abs(x);
101
102 (void)abs(x); // no warning - int and long are same length for this target
103 (void)labs(x);
104 (void)llabs(x);
105
106 (void)fabsf(x);
107 // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of integer type}}
108 // expected-note@-2 {{use function 'std::abs' instead}}
109 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
110 (void)fabs(x);
111 // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of integer type}}
112 // expected-note@-2 {{use function 'std::abs' instead}}
113 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
114 (void)fabsl(x);
115 // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of integer type}}
116 // expected-note@-2 {{use function 'std::abs' instead}}
117 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
118
119 (void)cabsf(x);
120 // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of integer type}}
121 // expected-note@-2 {{use function 'std::abs' instead}}
122 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
123 (void)cabs(x);
124 // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of integer type}}
125 // expected-note@-2 {{use function 'std::abs' instead}}
126 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
127 (void)cabsl(x);
128 // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of integer type}}
129 // expected-note@-2 {{use function 'std::abs' instead}}
130 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
131
132 (void)__builtin_abs(x); // no warning - int and long are same length for
133 // this target
134 (void)__builtin_labs(x);
135 (void)__builtin_llabs(x);
136
137 (void)__builtin_fabsf(x);
138 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of integer type}}
139 // expected-note@-2 {{use function 'std::abs' instead}}
140 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
141 (void)__builtin_fabs(x);
142 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of integer type}}
143 // expected-note@-2 {{use function 'std::abs' instead}}
144 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
145 (void)__builtin_fabsl(x);
146 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of integer type}}
147 // expected-note@-2 {{use function 'std::abs' instead}}
148 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
149
150 (void)__builtin_cabsf(x);
151 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of integer type}}
152 // expected-note@-2 {{use function 'std::abs' instead}}
153 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
154 (void)__builtin_cabs(x);
155 // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of integer type}}
156 // expected-note@-2 {{use function 'std::abs' instead}}
157 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
158 (void)__builtin_cabsl(x);
159 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of integer type}}
160 // expected-note@-2 {{use function 'std::abs' instead}}
161 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
162 }
163
test_long_long(long long x)164 void test_long_long(long long x) {
165 (void)std::abs(x);
166
167 (void)abs(x);
168 // expected-warning@-1{{absolute value function 'abs' given an argument of type 'long long' but has parameter of type 'int' which may cause truncation of value}}
169 // expected-note@-2{{use function 'std::abs' instead}}
170 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
171 (void)labs(x);
172 // expected-warning@-1{{absolute value function 'labs' given an argument of type 'long long' but has parameter of type 'long' which may cause truncation of value}}
173 // expected-note@-2{{use function 'std::abs' instead}}
174 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
175 (void)llabs(x);
176
177 (void)fabsf(x);
178 // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of integer type}}
179 // expected-note@-2 {{use function 'std::abs' instead}}
180 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
181 (void)fabs(x);
182 // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of integer type}}
183 // expected-note@-2 {{use function 'std::abs' instead}}
184 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
185 (void)fabsl(x);
186 // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of integer type}}
187 // expected-note@-2 {{use function 'std::abs' instead}}
188 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
189
190 (void)cabsf(x);
191 // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of integer type}}
192 // expected-note@-2 {{use function 'std::abs' instead}}
193 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
194 (void)cabs(x);
195 // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of integer type}}
196 // expected-note@-2 {{use function 'std::abs' instead}}
197 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
198 (void)cabsl(x);
199 // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of integer type}}
200 // expected-note@-2 {{use function 'std::abs' instead}}
201 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
202
203 (void)__builtin_abs(x);
204 // expected-warning@-1{{absolute value function '__builtin_abs' given an argument of type 'long long' but has parameter of type 'int' which may cause truncation of value}}
205 // expected-note@-2{{use function 'std::abs' instead}}
206 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
207 (void)__builtin_labs(x);
208 // expected-warning@-1{{absolute value function '__builtin_labs' given an argument of type 'long long' but has parameter of type 'long' which may cause truncation of value}}
209 // expected-note@-2{{use function 'std::abs' instead}}
210 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
211 (void)__builtin_llabs(x);
212
213 (void)__builtin_fabsf(x);
214 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of integer type}}
215 // expected-note@-2 {{use function 'std::abs' instead}}
216 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
217 (void)__builtin_fabs(x);
218 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of integer type}}
219 // expected-note@-2 {{use function 'std::abs' instead}}
220 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
221 (void)__builtin_fabsl(x);
222 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of integer type}}
223 // expected-note@-2 {{use function 'std::abs' instead}}
224 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
225
226 (void)__builtin_cabsf(x);
227 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of integer type}}
228 // expected-note@-2 {{use function 'std::abs' instead}}
229 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
230 (void)__builtin_cabs(x);
231 // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of integer type}}
232 // expected-note@-2 {{use function 'std::abs' instead}}
233 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
234 (void)__builtin_cabsl(x);
235 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of integer type}}
236 // expected-note@-2 {{use function 'std::abs' instead}}
237 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
238 }
239
test_float(float x)240 void test_float(float x) {
241 (void)std::abs(x);
242
243 (void)abs(x);
244 // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of floating point type}}
245 // expected-note@-2 {{use function 'std::abs' instead}}
246 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
247 (void)labs(x);
248 // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of floating point type}}
249 // expected-note@-2 {{use function 'std::abs' instead}}
250 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
251 (void)llabs(x);
252 // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of floating point type}}
253 // expected-note@-2 {{use function 'std::abs' instead}}
254 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
255
256 (void)fabsf(x);
257 (void)fabs(x);
258 (void)fabsl(x);
259
260 (void)cabsf(x);
261 // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of floating point type}}
262 // expected-note@-2 {{use function 'std::abs' instead}}
263 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
264 (void)cabs(x);
265 // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of floating point type}}
266 // expected-note@-2 {{use function 'std::abs' instead}}
267 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
268 (void)cabsl(x);
269 // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of floating point type}}
270 // expected-note@-2 {{use function 'std::abs' instead}}
271 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
272
273 (void)__builtin_abs(x);
274 // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of floating point type}}
275 // expected-note@-2 {{use function 'std::abs' instead}}
276 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
277 (void)__builtin_labs(x);
278 // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of floating point type}}
279 // expected-note@-2 {{use function 'std::abs' instead}}
280 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
281 (void)__builtin_llabs(x);
282 // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of floating point type}}
283 // expected-note@-2 {{use function 'std::abs' instead}}
284 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
285
286 (void)__builtin_fabsf(x);
287 (void)__builtin_fabs(x);
288 (void)__builtin_fabsl(x);
289
290 (void)__builtin_cabsf(x);
291 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of floating point type}}
292 // expected-note@-2 {{use function 'std::abs' instead}}
293 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
294 (void)__builtin_cabs(x);
295 // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of floating point type}}
296 // expected-note@-2 {{use function 'std::abs' instead}}
297 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
298 (void)__builtin_cabsl(x);
299 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of floating point type}}
300 // expected-note@-2 {{use function 'std::abs' instead}}
301 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
302 }
303
test_double(double x)304 void test_double(double x) {
305 (void)std::abs(x);
306
307 (void)abs(x);
308 // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of floating point type}}
309 // expected-note@-2 {{use function 'std::abs' instead}}
310 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
311 (void)labs(x);
312 // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of floating point type}}
313 // expected-note@-2 {{use function 'std::abs' instead}}
314 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
315 (void)llabs(x);
316 // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of floating point type}}
317 // expected-note@-2 {{use function 'std::abs' instead}}
318 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
319
320 (void)fabsf(x);
321 // expected-warning@-1{{absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value}}
322 // expected-note@-2{{use function 'std::abs' instead}}
323 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
324 (void)fabs(x);
325 (void)fabsl(x);
326
327 (void)cabsf(x);
328 // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of floating point type}}
329 // expected-note@-2 {{use function 'std::abs' instead}}
330 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
331 (void)cabs(x);
332 // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of floating point type}}
333 // expected-note@-2 {{use function 'std::abs' instead}}
334 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
335 (void)cabsl(x);
336 // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of floating point type}}
337 // expected-note@-2 {{use function 'std::abs' instead}}
338 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
339
340 (void)__builtin_abs(x);
341 // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of floating point type}}
342 // expected-note@-2 {{use function 'std::abs' instead}}
343 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
344 (void)__builtin_labs(x);
345 // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of floating point type}}
346 // expected-note@-2 {{use function 'std::abs' instead}}
347 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
348 (void)__builtin_llabs(x);
349 // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of floating point type}}
350 // expected-note@-2 {{use function 'std::abs' instead}}
351 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
352
353 (void)__builtin_fabsf(x);
354 // expected-warning@-1{{absolute value function '__builtin_fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value}}
355 // expected-note@-2{{use function 'std::abs' instead}}
356 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
357 (void)__builtin_fabs(x);
358 (void)__builtin_fabsl(x);
359
360 (void)__builtin_cabsf(x);
361 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of floating point type}}
362 // expected-note@-2 {{use function 'std::abs' instead}}
363 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
364 (void)__builtin_cabs(x);
365 // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of floating point type}}
366 // expected-note@-2 {{use function 'std::abs' instead}}
367 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
368 (void)__builtin_cabsl(x);
369 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of floating point type}}
370 // expected-note@-2 {{use function 'std::abs' instead}}
371 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
372 }
373
test_long_double(long double x)374 void test_long_double(long double x) {
375 (void)std::abs(x);
376
377 (void)abs(x);
378 // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of floating point type}}
379 // expected-note@-2 {{use function 'std::abs' instead}}
380 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
381 (void)labs(x);
382 // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of floating point type}}
383 // expected-note@-2 {{use function 'std::abs' instead}}
384 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
385 (void)llabs(x);
386 // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of floating point type}}
387 // expected-note@-2 {{use function 'std::abs' instead}}
388 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
389
390 (void)fabsf(x);
391 // expected-warning@-1{{absolute value function 'fabsf' given an argument of type 'long double' but has parameter of type 'float' which may cause truncation of value}}
392 // expected-note@-2{{use function 'std::abs' instead}}
393 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
394 (void)fabs(x);
395 // expected-warning@-1{{absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value}}
396 // expected-note@-2{{use function 'std::abs' instead}}
397 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
398 (void)fabsl(x);
399
400 (void)cabsf(x);
401 // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of floating point type}}
402 // expected-note@-2 {{use function 'std::abs' instead}}
403 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
404 (void)cabs(x);
405 // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of floating point type}}
406 // expected-note@-2 {{use function 'std::abs' instead}}
407 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
408 (void)cabsl(x);
409 // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of floating point type}}
410 // expected-note@-2 {{use function 'std::abs' instead}}
411 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
412
413 (void)__builtin_abs(x);
414 // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of floating point type}}
415 // expected-note@-2 {{use function 'std::abs' instead}}
416 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
417 (void)__builtin_labs(x);
418 // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of floating point type}}
419 // expected-note@-2 {{use function 'std::abs' instead}}
420 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
421 (void)__builtin_llabs(x);
422 // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of floating point type}}
423 // expected-note@-2 {{use function 'std::abs' instead}}
424 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
425
426 (void)__builtin_fabsf(x);
427 // expected-warning@-1{{absolute value function '__builtin_fabsf' given an argument of type 'long double' but has parameter of type 'float' which may cause truncation of value}}
428 // expected-note@-2{{use function 'std::abs' instead}}
429 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
430 (void)__builtin_fabs(x);
431 // expected-warning@-1{{absolute value function '__builtin_fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value}}
432 // expected-note@-2{{use function 'std::abs' instead}}
433 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
434 (void)__builtin_fabsl(x);
435
436 (void)__builtin_cabsf(x);
437 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of floating point type}}
438 // expected-note@-2 {{use function 'std::abs' instead}}
439 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
440 (void)__builtin_cabs(x);
441 // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of floating point type}}
442 // expected-note@-2 {{use function 'std::abs' instead}}
443 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
444 (void)__builtin_cabsl(x);
445 // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of floating point type}}
446 // expected-note@-2 {{use function 'std::abs' instead}}
447 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
448 }
449
test_complex_float(_Complex float x)450 void test_complex_float(_Complex float x) {
451 (void)abs(x);
452 // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of complex type}}
453 // expected-note@-2 {{use function 'cabsf' instead}}
454 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"cabsf"
455 (void)labs(x);
456 // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of complex type}}
457 // expected-note@-2 {{use function 'cabsf' instead}}
458 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsf"
459 (void)llabs(x);
460 // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of complex type}}
461 // expected-note@-2 {{use function 'cabsf' instead}}
462 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsf"
463
464 (void)fabsf(x);
465 // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of complex type}}
466 // expected-note@-2 {{use function 'cabsf' instead}}
467 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsf"
468 (void)fabs(x);
469 // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of complex type}}
470 // expected-note@-2 {{use function 'cabsf' instead}}
471 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsf"
472 (void)fabsl(x);
473 // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of complex type}}
474 // expected-note@-2 {{use function 'cabsf' instead}}
475 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsf"
476
477 (void)cabsf(x);
478 (void)cabs(x);
479 (void)cabsl(x);
480
481 (void)__builtin_abs(x);
482 // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of complex type}}
483 // expected-note@-2 {{use function '__builtin_cabsf' instead}}
484 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"__builtin_cabsf"
485 (void)__builtin_labs(x);
486 // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of complex type}}
487 // expected-note@-2 {{use function '__builtin_cabsf' instead}}
488 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsf"
489 (void)__builtin_llabs(x);
490 // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of complex type}}
491 // expected-note@-2 {{use function '__builtin_cabsf' instead}}
492 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsf"
493
494 (void)__builtin_fabsf(x);
495 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of complex type}}
496 // expected-note@-2 {{use function '__builtin_cabsf' instead}}
497 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsf"
498 (void)__builtin_fabs(x);
499 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of complex type}}
500 // expected-note@-2 {{use function '__builtin_cabsf' instead}}
501 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsf"
502 (void)__builtin_fabsl(x);
503 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of complex type}}
504 // expected-note@-2 {{use function '__builtin_cabsf' instead}}
505 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsf"
506
507 (void)__builtin_cabsf(x);
508 (void)__builtin_cabs(x);
509 (void)__builtin_cabsl(x);
510 }
511
test_complex_double(_Complex double x)512 void test_complex_double(_Complex double x) {
513 (void)abs(x);
514 // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of complex type}}
515 // expected-note@-2 {{use function 'cabs' instead}}
516 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"cabs"
517 (void)labs(x);
518 // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of complex type}}
519 // expected-note@-2 {{use function 'cabs' instead}}
520 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabs"
521 (void)llabs(x);
522 // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of complex type}}
523 // expected-note@-2 {{use function 'cabs' instead}}
524 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
525
526 (void)fabsf(x);
527 // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of complex type}}
528 // expected-note@-2 {{use function 'cabs' instead}}
529 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
530 (void)fabs(x);
531 // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of complex type}}
532 // expected-note@-2 {{use function 'cabs' instead}}
533 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabs"
534 (void)fabsl(x);
535 // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of complex type}}
536 // expected-note@-2 {{use function 'cabs' instead}}
537 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
538
539 (void)cabsf(x);
540 // expected-warning@-1 {{absolute value function 'cabsf' given an argument of type '_Complex double' but has parameter of type '_Complex float' which may cause truncation of value}}
541 // expected-note@-2 {{use function 'cabs' instead}}
542 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
543 (void)cabs(x);
544 (void)cabsl(x);
545
546 (void)__builtin_abs(x);
547 // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of complex type}}
548 // expected-note@-2 {{use function '__builtin_cabs' instead}}
549 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"__builtin_cabs"
550 (void)__builtin_labs(x);
551 // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of complex type}}
552 // expected-note@-2 {{use function '__builtin_cabs' instead}}
553 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabs"
554 (void)__builtin_llabs(x);
555 // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of complex type}}
556 // expected-note@-2 {{use function '__builtin_cabs' instead}}
557 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
558
559 (void)__builtin_fabsf(x);
560 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of complex type}}
561 // expected-note@-2 {{use function '__builtin_cabs' instead}}
562 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
563 (void)__builtin_fabs(x);
564 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of complex type}}
565 // expected-note@-2 {{use function '__builtin_cabs' instead}}
566 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabs"
567 (void)__builtin_fabsl(x);
568 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of complex type}}
569 // expected-note@-2 {{use function '__builtin_cabs' instead}}
570 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
571
572 (void)__builtin_cabsf(x);
573 // expected-warning@-1 {{absolute value function '__builtin_cabsf' given an argument of type '_Complex double' but has parameter of type '_Complex float' which may cause truncation of value}}
574 // expected-note@-2 {{use function '__builtin_cabs' instead}}
575 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
576 (void)__builtin_cabs(x);
577 (void)__builtin_cabsl(x);
578 }
579
test_complex_long_double(_Complex long double x)580 void test_complex_long_double(_Complex long double x) {
581 (void)abs(x);
582 // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of complex type}}
583 // expected-note@-2 {{use function 'cabsl' instead}}
584 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"cabsl"
585 (void)labs(x);
586 // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of complex type}}
587 // expected-note@-2 {{use function 'cabsl' instead}}
588 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsl"
589 (void)llabs(x);
590 // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of complex type}}
591 // expected-note@-2 {{use function 'cabsl' instead}}
592 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
593
594 (void)fabsf(x);
595 // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of complex type}}
596 // expected-note@-2 {{use function 'cabsl' instead}}
597 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
598 (void)fabs(x);
599 // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of complex type}}
600 // expected-note@-2 {{use function 'cabsl' instead}}
601 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsl"
602 (void)fabsl(x);
603 // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of complex type}}
604 // expected-note@-2 {{use function 'cabsl' instead}}
605 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
606
607 (void)cabsf(x);
608 // expected-warning@-1 {{absolute value function 'cabsf' given an argument of type '_Complex long double' but has parameter of type '_Complex float' which may cause truncation of value}}
609 // expected-note@-2 {{use function 'cabsl' instead}}
610 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
611 (void)cabs(x);
612 // expected-warning@-1 {{absolute value function 'cabs' given an argument of type '_Complex long double' but has parameter of type '_Complex double' which may cause truncation of value}}
613 // expected-note@-2 {{use function 'cabsl' instead}}
614 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsl"
615 (void)cabsl(x);
616
617 (void)__builtin_abs(x);
618 // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of complex type}}
619 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
620 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"__builtin_cabsl"
621 (void)__builtin_labs(x);
622 // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of complex type}}
623 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
624 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsl"
625 (void)__builtin_llabs(x);
626 // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of complex type}}
627 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
628 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
629
630 (void)__builtin_fabsf(x);
631 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of complex type}}
632 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
633 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
634 (void)__builtin_fabs(x);
635 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of complex type}}
636 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
637 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsl"
638 (void)__builtin_fabsl(x);
639 // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of complex type}}
640 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
641 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
642
643 (void)__builtin_cabsf(x);
644 // expected-warning@-1 {{absolute value function '__builtin_cabsf' given an argument of type '_Complex long double' but has parameter of type '_Complex float' which may cause truncation of value}}
645 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
646 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
647 (void)__builtin_cabs(x);
648 // expected-warning@-1 {{absolute value function '__builtin_cabs' given an argument of type '_Complex long double' but has parameter of type '_Complex double' which may cause truncation of value}}
649 // expected-note@-2 {{use function '__builtin_cabsl' instead}}
650 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsl"
651 (void)__builtin_cabsl(x);
652 }
653
test_unsigned_int(unsigned int x)654 void test_unsigned_int(unsigned int x) {
655 (void)std::abs(x);
656 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
657 // expected-note@-2 {{remove the call to 'std::abs' since unsigned values cannot be negative}}
658 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:17}:""
659
660 (void)abs(x);
661 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
662 // expected-note@-2 {{remove the call to 'abs' since unsigned values cannot be negative}}
663 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:""
664 (void)labs(x);
665 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
666 // expected-note@-2 {{remove the call to 'labs' since unsigned values cannot be negative}}
667 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
668 (void)llabs(x);
669 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
670 // expected-note@-2 {{remove the call to 'llabs' since unsigned values cannot be negative}}
671 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
672
673 (void)fabsf(x);
674 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
675 // expected-note@-2 {{remove the call to 'fabsf' since unsigned values cannot be negative}}
676 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
677 (void)fabs(x);
678 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
679 // expected-note@-2 {{remove the call to 'fabs' since unsigned values cannot be negative}}
680 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
681 (void)fabsl(x);
682 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
683 // expected-note@-2 {{remove the call to 'fabsl' since unsigned values cannot be negative}}
684 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
685
686 (void)cabsf(x);
687 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
688 // expected-note@-2 {{remove the call to 'cabsf' since unsigned values cannot be negative}}
689 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
690 (void)cabs(x);
691 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
692 // expected-note@-2 {{remove the call to 'cabs' since unsigned values cannot be negative}}
693 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
694 (void)cabsl(x);
695 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
696 // expected-note@-2 {{remove the call to 'cabsl' since unsigned values cannot be negative}}
697 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
698
699 (void)__builtin_abs(x);
700 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
701 // expected-note@-2 {{remove the call to '__builtin_abs' since unsigned values cannot be negative}}
702 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:""
703 (void)__builtin_labs(x);
704 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
705 // expected-note@-2 {{remove the call to '__builtin_labs' since unsigned values cannot be negative}}
706 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
707 (void)__builtin_llabs(x);
708 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
709 // expected-note@-2 {{remove the call to '__builtin_llabs' since unsigned values cannot be negative}}
710 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
711
712 (void)__builtin_fabsf(x);
713 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
714 // expected-note@-2 {{remove the call to '__builtin_fabsf' since unsigned values cannot be negative}}
715 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
716 (void)__builtin_fabs(x);
717 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
718 // expected-note@-2 {{remove the call to '__builtin_fabs' since unsigned values cannot be negative}}
719 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
720 (void)__builtin_fabsl(x);
721 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
722 // expected-note@-2 {{remove the call to '__builtin_fabsl' since unsigned values cannot be negative}}
723 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
724
725 (void)__builtin_cabsf(x);
726 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
727 // expected-note@-2 {{remove the call to '__builtin_cabsf' since unsigned values cannot be negative}}
728 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
729 (void)__builtin_cabs(x);
730 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
731 // expected-note@-2 {{remove the call to '__builtin_cabs' since unsigned values cannot be negative}}
732 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
733 (void)__builtin_cabsl(x);
734 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
735 // expected-note@-2 {{remove the call to '__builtin_cabsl' since unsigned values cannot be negative}}
736 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
737 }
738
test_unsigned_long(unsigned long x)739 void test_unsigned_long(unsigned long x) {
740 (void)std::abs(x);
741 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
742 // expected-note@-2 {{remove the call to 'std::abs' since unsigned values cannot be negative}}
743 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:17}:""
744
745 (void)abs(x);
746 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
747 // expected-note@-2 {{remove the call to 'abs' since unsigned values cannot be negative}}
748 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:""
749 (void)labs(x);
750 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
751 // expected-note@-2 {{remove the call to 'labs' since unsigned values cannot be negative}}
752 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
753 (void)llabs(x);
754 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
755 // expected-note@-2 {{remove the call to 'llabs' since unsigned values cannot be negative}}
756 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
757
758 (void)fabsf(x);
759 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
760 // expected-note@-2 {{remove the call to 'fabsf' since unsigned values cannot be negative}}
761 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
762 (void)fabs(x);
763 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
764 // expected-note@-2 {{remove the call to 'fabs' since unsigned values cannot be negative}}
765 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
766 (void)fabsl(x);
767 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
768 // expected-note@-2 {{remove the call to 'fabsl' since unsigned values cannot be negative}}
769 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
770
771 (void)cabsf(x);
772 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
773 // expected-note@-2 {{remove the call to 'cabsf' since unsigned values cannot be negative}}
774 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
775 (void)cabs(x);
776 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
777 // expected-note@-2 {{remove the call to 'cabs' since unsigned values cannot be negative}}
778 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
779 (void)cabsl(x);
780 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
781 // expected-note@-2 {{remove the call to 'cabsl' since unsigned values cannot be negative}}
782 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
783
784 (void)__builtin_abs(x);
785 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
786 // expected-note@-2 {{remove the call to '__builtin_abs' since unsigned values cannot be negative}}
787 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:""
788 (void)__builtin_labs(x);
789 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
790 // expected-note@-2 {{remove the call to '__builtin_labs' since unsigned values cannot be negative}}
791 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
792 (void)__builtin_llabs(x);
793 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
794 // expected-note@-2 {{remove the call to '__builtin_llabs' since unsigned values cannot be negative}}
795 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
796
797 (void)__builtin_fabsf(x);
798 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
799 // expected-note@-2 {{remove the call to '__builtin_fabsf' since unsigned values cannot be negative}}
800 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
801 (void)__builtin_fabs(x);
802 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
803 // expected-note@-2 {{remove the call to '__builtin_fabs' since unsigned values cannot be negative}}
804 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
805 (void)__builtin_fabsl(x);
806 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
807 // expected-note@-2 {{remove the call to '__builtin_fabsl' since unsigned values cannot be negative}}
808 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
809
810 (void)__builtin_cabsf(x);
811 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
812 // expected-note@-2 {{remove the call to '__builtin_cabsf' since unsigned values cannot be negative}}
813 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
814 (void)__builtin_cabs(x);
815 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
816 // expected-note@-2 {{remove the call to '__builtin_cabs' since unsigned values cannot be negative}}
817 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
818 (void)__builtin_cabsl(x);
819 // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
820 // expected-note@-2 {{remove the call to '__builtin_cabsl' since unsigned values cannot be negative}}
821 // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
822 }
823
824