Message ID | 606eb033c5ae22af5eb2ca4e01658804b6398c6e.1717134752.git.linkw@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | Replace {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE with new hook | expand |
> 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 ada > with TYPE_PRECISION of long_double_type_node. > > [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651209.html > > gcc/ada/ChangeLog: > > * gcc-interface/decl.cc (gnat_to_gnu_entity): Use TYPE_PRECISION of > long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. OK, thanks.
Hi Eric, on 2024/6/3 16:51, Eric Botcazou 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 ada >> with TYPE_PRECISION of long_double_type_node. >> >> [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651209.html >> >> gcc/ada/ChangeLog: >> >> * gcc-interface/decl.cc (gnat_to_gnu_entity): Use TYPE_PRECISION of >> long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. > > OK, thanks. > Pushed as r15-1031, thanks! BR, Kewen
diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc index f6a4c0631b6..8b72c96c439 100644 --- a/gcc/ada/gcc-interface/decl.cc +++ b/gcc/ada/gcc-interface/decl.cc @@ -520,7 +520,8 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, bool definition) esize = UI_To_Int (Esize (gnat_entity)); if (IN (kind, Float_Kind)) - max_esize = fp_prec_to_size (LONG_DOUBLE_TYPE_SIZE); + max_esize + = fp_prec_to_size (TYPE_PRECISION (long_double_type_node)); else if (IN (kind, Access_Kind)) max_esize = POINTER_SIZE * 2; else