Hi Kewen,

> On 3 Jun 2024, at 04:00, Kewen Lin <li...@linux.ibm.com> wrote:
> 
> Joseph pointed out "floating types should have their mode,
> not a poorly defined precision value" in the discussion[1],
> as he and Richi suggested, the existing macros
> {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE will be replaced with a
> hook mode_for_floating_type.  To be prepared for that, this
> patch is to replace use of LONG_DOUBLE_TYPE_SIZE in darwin.c
> with TYPE_PRECISION of long_double_type_node.
> 
> [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651209.html
> 
> gcc/ChangeLog:
> 
>       * config/darwin.cc (darwin_patch_builtins): Use TYPE_PRECISION of
>       long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
> ---
> gcc/config/darwin.cc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gcc/config/darwin.cc b/gcc/config/darwin.cc
> index 63b8c509405..9129378be37 100644
> --- a/gcc/config/darwin.cc
> +++ b/gcc/config/darwin.cc
> @@ -3620,7 +3620,7 @@ darwin_patch_builtin (enum built_in_function fncode)
> void
> darwin_patch_builtins (void)
> {
> -  if (LONG_DOUBLE_TYPE_SIZE != 128)
> +  if (TYPE_PRECISION (long_double_type_node) != 128)
>     return;

Darwin (at this revision) supports  long-double-{64,128}, but the support is 
limited
to ibm128 for the 128b case.

The purpose of this code is to adjust the libc function name in response to the
{64,128} for the long double type - when that is 128.

It seems that the revised version should be no less fragile than the original 
(since
we now have potentially two 128b long double formats, although IEEE754 is not 
yet 
implemented for < p7 so should not (yet) be relevant).

So, OK for the Darwin parts.
thanks,
Iain


> 
> #define PATCH_BUILTIN(fncode) darwin_patch_builtin (fncode);
> -- 
> 2.43.0
> 

Reply via email to