blob: 502459bba7b852c3dd486284b0d05561ce597716 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
-- { dg-do compile }
-- { dg-options "-g -gnatVa" }
with Unchecked_Conversion;
procedure Unchecked_Convert7 is
type BPA is array (1 .. 23) of Boolean;
pragma Pack (BPA);
for BPA'Size use 23;
subtype Byte is Natural range 0 .. 255;
type R is
record
S : Boolean;
E : Byte;
F : BPA;
end record;
for R use
record
S at 0 range 0 .. 0;
E at 0 range 1 .. 8;
F at 0 range 9 .. 31;
end record;
for R'Size use 32;
function Conversion
is new Unchecked_Conversion (Source => R, Target => Float);
F : Float := Conversion (R'(False, Byte'Last, (others => False)));
begin
null;
end;
|