HomeFreeBSD

Add casts and L suffixes to libc quad support, to work around various

Description

Add casts and L suffixes to libc quad support, to work around various
-Werror warnings from clang 10.0.0, such as:

lib/libc/quad/fixdfdi.c:57:12: error: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion]

if (x >= QUAD_MAX)
      ~~ ^~~~~~~~

/usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/sys/limits.h:89:19: note: expanded from macro 'QUAD_MAX'
#define QUAD_MAX (__QUAD_MAX) /* max value for a quad_t */

^~~~~~~~~~

/usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:91:20: note: expanded from macro 'QUAD_MAX'
#define
QUAD_MAX __LLONG_MAX /* max value for a quad_t */

^~~~~~~~~~~

/usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:75:21: note: expanded from macro 'LLONG_MAX'
#define
LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */

^~~~~~~~~~~~~~~~~~~~

and many instances of:

lib/libc/quad/fixunsdfdi.c:73:17: error: shift count >= width of type [-Werror,-Wshift-count-overflow]

toppart = (x - ONE_HALF) / ONE;
               ^~~~~~~~

lib/libc/quad/fixunsdfdi.c:45:19: note: expanded from macro 'ONE_HALF'
#define ONE_HALF (ONE_FOURTH * 2.0)

^~~~~~~~~~

lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH'
#define ONE_FOURTH (1 << (LONG_BITS - 2))

^  ~~~~~~~~~~~~~~~

lib/libc/quad/fixunsdfdi.c:73:29: error: shift count >= width of type [-Werror,-Wshift-count-overflow]

toppart = (x - ONE_HALF) / ONE;
                           ^~~

lib/libc/quad/fixunsdfdi.c:46:15: note: expanded from macro 'ONE'
#define ONE (ONE_FOURTH * 4.0)

^~~~~~~~~~

lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH'
#define ONE_FOURTH (1 << (LONG_BITS - 2))

^  ~~~~~~~~~~~~~~~

Details

Provenance
dimAuthored on
Parents
rS358041: Fix syntax error from r357647. Adjust a variable name to make the use more
Branches
Unknown
Tags
Unknown