* Oddity with function returning image of fixed point type
@ 2021-09-02 10:25 Jesper Quorning
2021-09-02 17:08 ` Stephen Leake
0 siblings, 1 reply; 4+ messages in thread
From: Jesper Quorning @ 2021-09-02 10:25 UTC (permalink / raw)
Is something odd going on here?
I did not expect Image_Odd1/2 to return floating point images.
with Ada.Text_Io; use Ada.Text_Io;
procedure Fpt_Last is
type Fpt is delta 0.01 digits 4;
Image_Last : constant String := Fpt'Image (Fpt'Last);
function Image_Ok return String is
begin
return Fpt'Last'Image;
-- return Fpt'Image (Fpt'Last); -- Also ok
end Image_Ok;
Last : constant Fpt := Fpt'Last;
function Image_Odd_1 return String is (Fpt'Last'Img);
function Image_Odd_2 return String is (Fpt'Last'Image);
function Image_Ok_2 return String is (Fpt'Image (FPT'Last));
function Image_Ok_3 return String is (Last'Image);
begin
Put_Line ("Image_Last : " & Image_Last);
Put_Line ("Image_Ok : " & Image_Ok);
Put_Line ("Image_Odd_1 : " & Image_Odd_1);
Put_Line ("Image_Odd_2 : " & Image_Odd_2);
Put_Line ("Image_Ok_2 : " & Image_Ok_2);
Put_Line ("Image_Ok_3 : " & Image_Ok_3);
end Fpt_Last;
Output:
Image_Last : 99.99
Image_Ok : 99.99
Image_Odd_1 : 9.99900000000000000E+01
Image_Odd_2 : 9.99900000000000000E+01
Image_Ok_2 : 99.99
Image_Ok_3 : 99.99
Compiled with gnatmake version 10.3.0 or CE 2020 on macOS 10.13.6.
/Jesper
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Oddity with function returning image of fixed point type
2021-09-02 10:25 Oddity with function returning image of fixed point type Jesper Quorning
@ 2021-09-02 17:08 ` Stephen Leake
2021-09-02 17:32 ` Dmitry A. Kazakov
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Leake @ 2021-09-02 17:08 UTC (permalink / raw)
Jesper Quorning <jesper.quorning@gmail.com> writes:
> Is something odd going on here?
> I did not expect Image_Odd1/2 to return floating point images.
Right, this looks like a compiler bug. LRM 3.5(13):
S'Last
S'Last denotes the upper bound of the range of S. The
value of this attribute is of the type of S.
But this is acting like Fpt'Last is universal_real.
--
-- Stephe
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Oddity with function returning image of fixed point type
2021-09-02 17:08 ` Stephen Leake
@ 2021-09-02 17:32 ` Dmitry A. Kazakov
2021-09-02 23:24 ` Jesper Quorning
0 siblings, 1 reply; 4+ messages in thread
From: Dmitry A. Kazakov @ 2021-09-02 17:32 UTC (permalink / raw)
On 2021-09-02 19:08, Stephen Leake wrote:
> Jesper Quorning <jesper.quorning@gmail.com> writes:
>
>> Is something odd going on here?
>> I did not expect Image_Odd1/2 to return floating point images.
>
> Right, this looks like a compiler bug. LRM 3.5(13):
>
> S'Last
> S'Last denotes the upper bound of the range of S. The
> value of this attribute is of the type of S.
>
> But this is acting like Fpt'Last is universal_real.
No, it is this:
LRM 4.10 (40/5)
"X'Image denotes the result of calling function S'Image with Arg being
X, where S is the nominal subtype of X."
The question is what is the nominal subtype of Fpt'Last.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Oddity with function returning image of fixed point type
2021-09-02 17:32 ` Dmitry A. Kazakov
@ 2021-09-02 23:24 ` Jesper Quorning
0 siblings, 0 replies; 4+ messages in thread
From: Jesper Quorning @ 2021-09-02 23:24 UTC (permalink / raw)
torsdag den 2. september 2021 kl. 19.33.00 UTC+2 skrev Dmitry A. Kazakov:
> On 2021-09-02 19:08, Stephen Leake wrote:
> > Jesper Quorning <jesper....@gmail.com> writes:
> >
> >> Is something odd going on here?
> >> I did not expect Image_Odd1/2 to return floating point images.
> >
> > Right, this looks like a compiler bug. LRM 3.5(13):
> >
> > S'Last
> > S'Last denotes the upper bound of the range of S. The
> > value of this attribute is of the type of S.
> >
> > But this is acting like Fpt'Last is universal_real.
> No, it is this:
>
> LRM 4.10 (40/5)
Had to go back to Ada 83 LRM to find a chapter 4.10.
> "X'Image denotes the result of calling function S'Image with Arg being
> X, where S is the nominal subtype of X."
LRM 3.5 (35-36) says about the same.
> The question is what is the nominal subtype of Fpt'Last.
Well Image_Ok and Image_Odd_2 should both return Fpt'Last'Image so one of them must be bad.
Found LRM 3.5 (27.7/2) describing the image of a fixed point type.
Thanks for your responses. I will report the issue.
/Jesper
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-09-02 23:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-02 10:25 Oddity with function returning image of fixed point type Jesper Quorning
2021-09-02 17:08 ` Stephen Leake
2021-09-02 17:32 ` Dmitry A. Kazakov
2021-09-02 23:24 ` Jesper Quorning
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox