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 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 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 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 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 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 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 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 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 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 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 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