[PATCH 27/59] support: Handle clang support/dtotimespec.c on dtotimespec

Sam James sam@gentoo.org
Mon Oct 20 20:10:30 GMT 2025


Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:

> clang issues:
>
> dtotimespec.c:31:25: error: implicit conversion from 'time_t' (aka
> 'long') to 'double' changes value from 9223372036854775807 to
> 9223372036854775808 [-Werror,-Wimplicit-const-int-float-conversion]
>   else if (sec >= 1.0 + TYPE_MAXIMUM (time_t))
>                       ~ ^~~~~~~~~~~~~~~~~~~~~
> ../include/intprops.h:57:4: note: expanded from macro 'TYPE_MAXIMUM'
>   ((t) (! TYPE_SIGNED (t)
> \
>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> So explicit cast it to double.

Reviewed-by: Sam James <sam@gentoo.org>

> ---
>  support/dtotimespec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/support/dtotimespec.c b/support/dtotimespec.c
> index b4e252c715..1b66575281 100644
> --- a/support/dtotimespec.c
> +++ b/support/dtotimespec.c
> @@ -28,7 +28,7 @@ dtotimespec (double sec)
>  {
>    if (sec <= TYPE_MINIMUM (time_t))
>      return make_timespec (TYPE_MINIMUM (time_t), 0);
> -  else if (sec >= 1.0 + TYPE_MAXIMUM (time_t))
> +  else if (sec >= 1.0 + (double) TYPE_MAXIMUM (time_t))
>      return make_timespec (TYPE_MAXIMUM (time_t), TIMESPEC_HZ - 1);
>    else
>      {


More information about the Libc-alpha mailing list