]> git.ipfire.org Git - thirdparty/gcc.git/commit
ada: Make Long_Long_Float'Write deterministic
authorRonan Desplanques <desplanques@adacore.com>
Tue, 7 Oct 2025 13:04:46 +0000 (15:04 +0200)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Mon, 3 Nov 2025 14:15:15 +0000 (15:15 +0100)
commit3e7ea99b431504dec539a63ec1e9b4ec1ecf4434
treeb3b9281215c4692c1d2118686f5c01232f97b3c3
parent2c7a70ef2ddc754b9972111ccb200521895681a5
ada: Make Long_Long_Float'Write deterministic

On some platforms, Long_Long_Float'Size (and Long_Long_Float'Stream_Size)
is 128 but only 80 bits are effectively used. This pack makes it so
'Write in this case write zeros for the padding bits instead of
unspecified values.

gcc/ada/ChangeLog:

* gen_il-fields.ads (Is_IEEE_Extended_Precision): New flag.
* gen_il-gen-gen_entities.adb: Likewise.
* gen_il-internals.adb (Image): Likewise.
* treepr.adb (Image): Likewise.
* einfo.ads: Document new flag.
* cstand.adb (Copy_Float_Type, Register_Float_Type): Use new flag.
* libgnat/s-stratt.ads (W_80IEEE): New procedure.
* libgnat/s-stratt.adb (W_80IEEE): Likewise.
* exp_strm.adb (Get_Primitives): Select new procedure when
appropriate.
* rtsfind.ads: Register new runtime procedure.
* sem_ch3.adb (Build_Derived_Numeric_Type,
Analyze_Subtype_Declaration): Propagate new flag.
gcc/ada/cstand.adb
gcc/ada/einfo.ads
gcc/ada/exp_strm.adb
gcc/ada/gen_il-fields.ads
gcc/ada/gen_il-gen-gen_entities.adb
gcc/ada/gen_il-internals.adb
gcc/ada/libgnat/s-stratt.adb
gcc/ada/libgnat/s-stratt.ads
gcc/ada/rtsfind.ads
gcc/ada/sem_ch3.adb
gcc/ada/treepr.adb