From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!reader01.eternal-september.org!aioe.org!XkhLYGh9FeaGRJtDGav81g.user.46.165.242.75.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: New compiler error with new compiler Date: Tue, 06 Dec 2022 13:32:27 +0000 Organization: Aioe.org NNTP Server Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: gioia.aioe.org; logging-data="30066"; posting-host="XkhLYGh9FeaGRJtDGav81g.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (darwin) X-Notice: Filtered by postfilter v. 0.9.2 Cancel-Lock: sha1:c2LiyKf/QtFCblbahLE+50oKoPk= Xref: reader01.eternal-september.org comp.lang.ada:64677 List-Id: "Dmitry A. Kazakov" writes: > Looks like Long_Long_Float has at least same mantissa as > Long_Float. What are the actual values of Long_Float'Digits and > Long_Long_Float'Digits? You can get a listing of package Standard by compiling with -gnatS. On aarch64, with the aarch64 compiler, type Short_Float is digits 6 range -16#0.FFFF_FF#E32 .. 16#0.FFFF_FF#E32; for Short_Float'Size use 32; type Float is digits 6 range -16#0.FFFF_FF#E32 .. 16#0.FFFF_FF#E32; for Float'Size use 32; type Long_Float is digits 15 range -16#0.FFFF_FFFF_FFFF_F8#E256 .. 16#0.FFFF_FFFF_FFFF_F8#E256; for Long_Float'Size use 64; type Long_Long_Float is digits 15 range -16#0.FFFF_FFFF_FFFF_F8#E256 .. 16#0.FFFF_FFFF_FFFF_F8#E256; for Long_Long_Float'Size use 64; With the x86_64 compiler, type Short_Float is digits 6 range -16#0.FFFF_FF#E32 .. 16#0.FFFF_FF#E32; for Short_Float'Size use 32; type Float is digits 6 range -16#0.FFFF_FF#E32 .. 16#0.FFFF_FF#E32; for Float'Size use 32; type Long_Float is digits 15 range -16#0.FFFF_FFFF_FFFF_F8#E256 .. 16#0.FFFF_FFFF_FFFF_F8#E256; for Long_Float'Size use 64; type Long_Long_Float is digits 18 range -16#0.FFFF_FFFF_FFFF_FFFF#E4096 .. 16#0.FFFF_FFFF_FFFF_FFFF#E4096; for Long_Long_Float'Size use 128; Don't forget that on aarch64, x86_64 code is 'emulated' by Rosetta.