16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -triple i686-pc-linux-gnu -fsyntax-only -verify %s -Wabsolute-value -std=c++11
26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -triple i686-pc-linux-gnu -fsyntax-only %s -Wabsolute-value -fdiagnostics-parseable-fixits -std=c++11 2>&1 | FileCheck %s
36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesextern "C" {
56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesint abs(int);
66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong int labs(long int);
76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong long int llabs(long long int);
86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesfloat fabsf(float);
106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesdouble fabs(double);
116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong double fabsl(long double);
126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesfloat cabsf(float _Complex);
146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesdouble cabs(double _Complex);
156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong double cabsl(long double _Complex);
166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesnamespace std {
196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesinline namespace __1 {
216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesint abs(int);
226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong int abs(long int);
236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong long int abs(long long int);
246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesfloat abs(float);
276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesdouble abs(double);
286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hineslong double abs(long double);
296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestemplate <typename T>
316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesdouble abs(T);
326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_int(int x) {
366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of integer type}}
446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of integer type}}
486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of integer type}}
526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of integer type}}
576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of integer type}}
616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of integer type}}
656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of integer type}}
746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of integer type}}
786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of integer type}}
826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of integer type}}
876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of integer type}}
916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of integer type}}
956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_long(long x) {
1006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
1016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);  // no warning - int and long are same length for this target
1036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
1046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
1056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
1076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of integer type}}
1086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
1116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of integer type}}
1126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
1146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
1156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of integer type}}
1166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
1206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of integer type}}
1216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
1246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of integer type}}
1256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
1276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
1286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of integer type}}
1296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);  // no warning - int and long are same length for
1336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines                           // this target
1346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
1356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
1366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
1386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of integer type}}
1396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
1416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
1426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of integer type}}
1436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
1456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
1466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of integer type}}
1476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
1496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
1516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of integer type}}
1526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
1546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
1556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of integer type}}
1566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
1586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
1596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of integer type}}
1606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
1626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
1636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_long_long(long long x) {
1656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
1666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
1686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
1696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
1706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
1716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
1726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
1736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
1746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
1756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
1766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
1786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of integer type}}
1796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
1826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of integer type}}
1836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
1856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
1866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of integer type}}
1876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
1916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of integer type}}
1926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
1946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
1956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of integer type}}
1966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
1976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
1986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
1996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of integer type}}
2006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
2026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
2046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
2056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
2066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
2076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
2086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
2096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
2106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
2116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
2126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
2146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of integer type}}
2156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
2176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
2186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of integer type}}
2196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
2216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
2226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of integer type}}
2236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
2256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
2276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of integer type}}
2286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
2306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
2316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of integer type}}
2326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
2346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
2356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of integer type}}
2366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
2386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
2396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_float(float x) {
2416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
2426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
2446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of floating point type}}
2456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
2476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
2486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of floating point type}}
2496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
2516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
2526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of floating point type}}
2536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
2556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
2576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
2586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
2596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
2616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of floating point type}}
2626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
2646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
2656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of floating point type}}
2666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
2686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
2696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of floating point type}}
2706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
2726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
2746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of floating point type}}
2756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
2776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
2786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of floating point type}}
2796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
2816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
2826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of floating point type}}
2836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
2856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
2876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
2886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
2896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
2916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of floating point type}}
2926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
2946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
2956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of floating point type}}
2966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
2976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
2986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
2996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of floating point type}}
3006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
3026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
3036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_double(double x) {
3056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
3066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
3086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of floating point type}}
3096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
3116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
3126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of floating point type}}
3136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
3156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
3166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of floating point type}}
3176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
3196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
3216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
3226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
3236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
3246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
3256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
3266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
3286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of floating point type}}
3296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
3316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
3326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of floating point type}}
3336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
3356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
3366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of floating point type}}
3376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
3396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
3416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of floating point type}}
3426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
3446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
3456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of floating point type}}
3466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
3486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
3496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of floating point type}}
3506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
3526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
3546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
3556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
3566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
3576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
3586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
3596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
3616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of floating point type}}
3626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
3646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
3656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of floating point type}}
3666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
3686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
3696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of floating point type}}
3706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
3726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
3736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_long_double(long double x) {
3756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
3766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
3786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of floating point type}}
3796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"std::abs"
3816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
3826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of floating point type}}
3836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
3856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
3866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of floating point type}}
3876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
3886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
3896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
3906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
3916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
3926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
3936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
3946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
3956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
3966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
3976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
3986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
3996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
4016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsf' when argument is of floating point type}}
4026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
4046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
4056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabs' when argument is of floating point type}}
4066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"std::abs"
4086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
4096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function 'cabsl' when argument is of floating point type}}
4106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"std::abs"
4126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
4146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of floating point type}}
4156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"std::abs"
4176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
4186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of floating point type}}
4196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
4216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
4226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of floating point type}}
4236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
4256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
4276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
4286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
4296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
4306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
4316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
4326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2{{use function 'std::abs' instead}}
4336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
4346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
4356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
4376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsf' when argument is of floating point type}}
4386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
4406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
4416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabs' when argument is of floating point type}}
4426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"std::abs"
4446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
4456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using complex absolute value function '__builtin_cabsl' when argument is of floating point type}}
4466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'std::abs' instead}}
4476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"std::abs"
4486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
4496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_complex_float(_Complex float x) {
4516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
4526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of complex type}}
4536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsf' instead}}
4546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"cabsf"
4556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
4566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of complex type}}
4576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsf' instead}}
4586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsf"
4596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
4606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of complex type}}
4616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsf' instead}}
4626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsf"
4636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
4656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of complex type}}
4666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsf' instead}}
4676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsf"
4686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
4696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of complex type}}
4706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsf' instead}}
4716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsf"
4726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
4736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of complex type}}
4746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsf' instead}}
4756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsf"
4766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
4786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
4796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
4806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
4826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of complex type}}
4836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsf' instead}}
4846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"__builtin_cabsf"
4856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
4866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of complex type}}
4876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsf' instead}}
4886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsf"
4896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
4906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of complex type}}
4916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsf' instead}}
4926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsf"
4936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
4946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
4956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of complex type}}
4966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsf' instead}}
4976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsf"
4986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
4996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of complex type}}
5006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsf' instead}}
5016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsf"
5026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
5036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of complex type}}
5046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsf' instead}}
5056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsf"
5066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
5086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
5096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
5106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
5116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_complex_double(_Complex double x) {
5136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
5146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of complex type}}
5156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"cabs"
5176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
5186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of complex type}}
5196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabs"
5216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
5226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of complex type}}
5236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
5256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
5276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of complex type}}
5286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
5306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
5316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of complex type}}
5326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabs"
5346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
5356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of complex type}}
5366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
5386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
5406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
5416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabs' instead}}
5426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabs"
5436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
5446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
5456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
5476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of complex type}}
5486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"__builtin_cabs"
5506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
5516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of complex type}}
5526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabs"
5546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
5556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of complex type}}
5566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
5586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
5606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of complex type}}
5616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
5636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
5646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of complex type}}
5656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabs"
5676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
5686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of complex type}}
5696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
5716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
5736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
5746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabs' instead}}
5756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabs"
5766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
5776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
5786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
5796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_complex_long_double(_Complex long double x) {
5816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
5826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'abs' when argument is of complex type}}
5836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
5846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:"cabsl"
5856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
5866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'labs' when argument is of complex type}}
5876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
5886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsl"
5896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
5906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function 'llabs' when argument is of complex type}}
5916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
5926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
5936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
5946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
5956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsf' when argument is of complex type}}
5966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
5976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
5986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
5996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabs' when argument is of complex type}}
6006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
6016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsl"
6026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
6036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function 'fabsl' when argument is of complex type}}
6046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
6056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
6066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
6086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
6096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
6106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:"cabsl"
6116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
6126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
6136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function 'cabsl' instead}}
6146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:"cabsl"
6156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
6166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
6186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_abs' when argument is of complex type}}
6196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:"__builtin_cabsl"
6216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
6226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_labs' when argument is of complex type}}
6236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsl"
6256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
6266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using integer absolute value function '__builtin_llabs' when argument is of complex type}}
6276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
6296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
6316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsf' when argument is of complex type}}
6326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
6346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
6356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabs' when argument is of complex type}}
6366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsl"
6386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
6396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{using floating point absolute value function '__builtin_fabsl' when argument is of complex type}}
6406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
6426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
6446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
6456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:"__builtin_cabsl"
6476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
6486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // 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}}
6496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{use function '__builtin_cabsl' instead}}
6506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:"__builtin_cabsl"
6516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
6526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
6536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_unsigned_int(unsigned int x) {
6556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
6566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'std::abs' since unsigned values cannot be negative}}
6586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:17}:""
6596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
6616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'abs' since unsigned values cannot be negative}}
6636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:""
6646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
6656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'labs' since unsigned values cannot be negative}}
6676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
6686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
6696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'llabs' since unsigned values cannot be negative}}
6716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
6726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
6746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'fabsf' since unsigned values cannot be negative}}
6766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
6776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
6786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'fabs' since unsigned values cannot be negative}}
6806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
6816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
6826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'fabsl' since unsigned values cannot be negative}}
6846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
6856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
6876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'cabsf' since unsigned values cannot be negative}}
6896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
6906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
6916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'cabs' since unsigned values cannot be negative}}
6936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
6946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
6956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
6966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'cabsl' since unsigned values cannot be negative}}
6976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
6986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
6996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
7006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_abs' since unsigned values cannot be negative}}
7026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:""
7036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
7046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_labs' since unsigned values cannot be negative}}
7066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
7076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
7086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_llabs' since unsigned values cannot be negative}}
7106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
7116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
7136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_fabsf' since unsigned values cannot be negative}}
7156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
7166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
7176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_fabs' since unsigned values cannot be negative}}
7196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
7206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
7216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_fabsl' since unsigned values cannot be negative}}
7236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
7246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
7266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_cabsf' since unsigned values cannot be negative}}
7286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
7296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
7306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_cabs' since unsigned values cannot be negative}}
7326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
7336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
7346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned int' has no effect}}
7356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_cabsl' since unsigned values cannot be negative}}
7366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
7376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
7386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid test_unsigned_long(unsigned long x) {
7406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)std::abs(x);
7416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'std::abs' since unsigned values cannot be negative}}
7436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:17}:""
7446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)abs(x);
7466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'abs' since unsigned values cannot be negative}}
7486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:12}:""
7496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)labs(x);
7506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'labs' since unsigned values cannot be negative}}
7526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
7536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)llabs(x);
7546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'llabs' since unsigned values cannot be negative}}
7566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
7576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsf(x);
7596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'fabsf' since unsigned values cannot be negative}}
7616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
7626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabs(x);
7636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'fabs' since unsigned values cannot be negative}}
7656bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
7666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)fabsl(x);
7676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'fabsl' since unsigned values cannot be negative}}
7696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
7706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsf(x);
7726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'cabsf' since unsigned values cannot be negative}}
7746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
7756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabs(x);
7766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'cabs' since unsigned values cannot be negative}}
7786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:13}:""
7796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)cabsl(x);
7806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to 'cabsl' since unsigned values cannot be negative}}
7826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:14}:""
7836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_abs(x);
7856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_abs' since unsigned values cannot be negative}}
7876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:22}:""
7886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_labs(x);
7896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_labs' since unsigned values cannot be negative}}
7916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
7926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_llabs(x);
7936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_llabs' since unsigned values cannot be negative}}
7956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
7966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
7976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsf(x);
7986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
7996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_fabsf' since unsigned values cannot be negative}}
8006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
8016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabs(x);
8026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
8036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_fabs' since unsigned values cannot be negative}}
8046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
8056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_fabsl(x);
8066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
8076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_fabsl' since unsigned values cannot be negative}}
8086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
8096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
8106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsf(x);
8116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
8126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_cabsf' since unsigned values cannot be negative}}
8136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
8146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabs(x);
8156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
8166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_cabs' since unsigned values cannot be negative}}
8176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:23}:""
8186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  (void)__builtin_cabsl(x);
8196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-warning@-1 {{taking the absolute value of unsigned type 'unsigned long' has no effect}}
8206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // expected-note@-2 {{remove the call to '__builtin_cabsl' since unsigned values cannot be negative}}
8216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:9-[[@LINE-3]]:24}:""
8226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
8236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
824