| with System; |
| |
| package Opt96_Pkg is |
| |
| type Baz_Type is delta (1.0 / 2.0**16) range 0.0 .. 1.0 - (1.0 / 2.0**16); |
| for Baz_Type'Small use (1.0 / 2.0**16); |
| for Baz_Type'Size use 16; |
| |
| type Bar_Type is record |
| X : Baz_Type; |
| Y : Baz_Type; |
| end record; |
| for Bar_Type use record |
| X at 0 range 0 .. 15; |
| Y at 2 range 0 .. 15; |
| end record; |
| for Bar_Type'Bit_Order use System.High_Order_First; |
| for Bar_Type'Scalar_Storage_Order use System.High_Order_First; |
| |
| type Foo_Type is record |
| Bar : Bar_Type; |
| end record; |
| |
| type Data is tagged record |
| Foo : Foo_Type; |
| end record; |
| |
| type Rec is tagged null record; |
| |
| function F (Self : Rec; D : Data'Class) return Integer; |
| |
| end Opt96_Pkg; |