From patchwork Fri Jul 5 14:29:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcus Haehnel X-Patchwork-Id: 1957347 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernkonzept.com header.i=@kernkonzept.com header.a=rsa-sha256 header.s=mx1 header.b=VcXBQtMA; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=uclibc-ng.org (client-ip=89.238.66.15; helo=helium.openadk.org; envelope-from=devel-bounces@uclibc-ng.org; receiver=patchwork.ozlabs.org) Received: from helium.openadk.org (helium.openadk.org [89.238.66.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WFwtv5Lm6z1xpP for ; Sat, 6 Jul 2024 00:31:35 +1000 (AEST) Received: from helium.openadk.org (localhost [IPv6:::1]) by helium.openadk.org (Postfix) with ESMTP id 3B44535363AF; Fri, 5 Jul 2024 16:31:24 +0200 (CEST) Authentication-Results: helium.openadk.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernkonzept.com header.i=@kernkonzept.com header.a=rsa-sha256 header.s=mx1 header.b=VcXBQtMA; dkim-atps=neutral Received: from mx.kernkonzept.com (serv1.kernkonzept.com [159.69.200.6]) by helium.openadk.org (Postfix) with ESMTPS id 838C33528237 for ; Fri, 5 Jul 2024 16:31:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kernkonzept.com; s=mx1; h=Content-Transfer-Encoding:MIME-Version:Message-ID :Date:Subject:Cc:To:From:References:In-Reply-To:Reply-To:Content-Type: Content-ID:Content-Description; bh=5ZQi6cfmsLJ6KWySLEcQkKVMUH5wZRS+SDLSLmKnex0=; b=VcXBQtMApu8wIN69PoEZoaEHXm sBSMRHsezQy8gVEx1HFVypwkPXhmoWtVcsU51sURB/6hgqexu8EIBZ3Ei68/oDEMdnYVFLsknA3K4 e4WITgCnXLXAhiGsV6jbFjKMq1wIt+JZUpzpF47u34GXGZQbcHenaTaJpP+FdqcLzMq4MWxEVJjCR qyKONVQob1bcqUJVrTpwJ+zW9C/cgIC8HXTRYpmJGxruCQl0PeVwl0nDFaN5VrZS1BgKvV5ZIPD97 kBZEcmS8P+9yCZpnRi5oPGEXSdmGofrowpyvKRzwslqVF5fYWBdGC+j6IakvxvWddkoWQDjNnxTIk UaYg92dg==; Received: from ipb21a422b.dynamic.kabel-deutschland.de ([178.26.66.43] helo=amethyst.dd1.int.kernkonzept.com) by mx.kernkonzept.com with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) id 1sPjy0-000HVY-11; Fri, 05 Jul 2024 16:31:16 +0200 From: Marcus Haehnel To: devel@uclibc-ng.org Date: Fri, 5 Jul 2024 16:29:03 +0200 Message-ID: <20240705143105.10071-2-marcus.haehnel@kernkonzept.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: ZKCPCUQZNNRTURRCFGDWGBJVRHTYPDOC X-Message-ID-Hash: ZKCPCUQZNNRTURRCFGDWGBJVRHTYPDOC X-MailFrom: marcus.haehnel@kernkonzept.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Marcus Haehnel , Sven Linker X-Mailman-Version: 3.3.3 Precedence: list Subject: [uclibc-ng-devel] [PATCH v2] uclibc: Fix double promotion warning List-Id: uClibc-ng Development Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Add casts where necessary to convince clang that the promotion of float to double is intentional. Signed-off-by: Sven Linker --- v2: Missed some changed files in the first version. libc/stdio/_fpmaxtostr.c | 4 ++-- libc/stdlib/_strtod.c | 10 +++++----- libm/cexp.c | 6 +++--- libm/float_wrappers.c | 2 +- libm/nan.c | 4 ++-- libm/w_cabs.c | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/libc/stdio/_fpmaxtostr.c b/libc/stdio/_fpmaxtostr.c index b06b25aa0..1f268fdaa 100644 --- a/libc/stdio/_fpmaxtostr.c +++ b/libc/stdio/_fpmaxtostr.c @@ -318,8 +318,8 @@ ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info, #else /* __UCLIBC_HAS_HEXADECIMAL_FLOATS__ */ -#define lower_bnd 1e8 -#define upper_bnd 1e9 +#define lower_bnd (__fpmax_t)1e8 +#define upper_bnd (__fpmax_t)1e9 #define power_table exp10_table #define dpb DIGITS_PER_BLOCK #define base 10 diff --git a/libc/stdlib/_strtod.c b/libc/stdlib/_strtod.c index c4c79e511..483551e64 100644 --- a/libc/stdlib/_strtod.c +++ b/libc/stdlib/_strtod.c @@ -256,7 +256,7 @@ __fpmax_t attribute_hidden __XL_NPP(__strtofpmax)(const Wchar *str, Wchar **endp } #endif - number = 0.; + number = (__fpmax_t)0; #ifdef _STRTOD_NEED_NUM_DIGITS num_digits = -1; #endif @@ -339,7 +339,7 @@ __fpmax_t attribute_hidden __XL_NPP(__strtofpmax)(const Wchar *str, Wchar **endp while ((pos[j] | 0x20) == nan_inf_str[i+1+j]) { ++j; if (!nan_inf_str[i+1+j]) { - number = i / 0.; + number = i / (__fpmax_t)0.; if (negative) { /* Correct for sign. */ number = -number; } @@ -414,7 +414,7 @@ __fpmax_t attribute_hidden __XL_NPP(__strtofpmax)(const Wchar *str, Wchar **endp } #ifdef _STRTOD_ZERO_CHECK - if (number == 0.) { + if (number == (__fpmax_t)0.) { goto DONE; } #endif @@ -515,7 +515,7 @@ float __XL_NPP(strtof)(const Wchar *str, Wchar **endptr __LOCALE_PARAM ) x = __XL_NPP(__strtofpmax)(str, endptr, 0 __LOCALE_ARG ); y = (float) x; - __fp_range_check(y, x); + __fp_range_check((__fpmax_t)y, x); return y; #endif @@ -549,7 +549,7 @@ double __XL_NPP(strtod)(const Wchar *__restrict str, x = __XL_NPP(__strtofpmax)(str, endptr, 0 __LOCALE_ARG ); y = (double) x; - __fp_range_check(y, x); + __fp_range_check((__fpmax_t)y, x); return y; #endif diff --git a/libm/cexp.c b/libm/cexp.c index 87512b7c5..a08d12d4e 100644 --- a/libm/cexp.c +++ b/libm/cexp.c @@ -38,10 +38,10 @@ libm_hidden_proto(cexpf) __complex__ float cexpf(__complex__ float z) { __complex__ float ret; - double r_exponent = exp(__real__ z); + double r_exponent = exp((double)__real__ z); - __real__ ret = r_exponent * cosf(__imag__ z); - __imag__ ret = r_exponent * sinf(__imag__ z); + __real__ ret = r_exponent * (double) cosf(__imag__ z); + __imag__ ret = r_exponent * (double) sinf(__imag__ z); return ret; } diff --git a/libm/float_wrappers.c b/libm/float_wrappers.c index 948f6bc14..35887dde2 100644 --- a/libm/float_wrappers.c +++ b/libm/float_wrappers.c @@ -230,7 +230,7 @@ long_WRAPPER1(lround) float modff (float x, float *iptr) { double y, result; - result = modf( x, &y ); + result = modf( (double)x, &y ); *iptr = (float)y; return (float) result; } diff --git a/libm/nan.c b/libm/nan.c index 454734b6f..9c2cd6e90 100644 --- a/libm/nan.c +++ b/libm/nan.c @@ -28,7 +28,7 @@ double nan (const char *tagp) sprintf (buf, "NAN(%s)", tagp); return strtod (buf, NULL); } - return NAN; + return (double)NAN; } libm_hidden_def(nan) @@ -53,7 +53,7 @@ long double nanl (const char *tagp) sprintf (buf, "NAN(%s)", tagp); return strtold (buf, NULL); } - return NAN; + return (long double)NAN; } libm_hidden_def(nanl) #endif diff --git a/libm/w_cabs.c b/libm/w_cabs.c index b2592484c..546b6affa 100644 --- a/libm/w_cabs.c +++ b/libm/w_cabs.c @@ -17,7 +17,7 @@ libm_hidden_def(cabs) libm_hidden_proto(cabsf) float cabsf(float _Complex z) { - return (float) hypot(__real__ z, __imag__ z); + return (float) hypot((double)__real__ z, (double)__imag__ z); } libm_hidden_def(cabsf)