| package Derived_Type5_Pkg is |
| |
| type T_Unsigned8 is new Natural range 0 .. (2 ** 8 - 1); |
| |
| type Rec (Discriminant : T_Unsigned8) is record |
| Fixed_Field : T_Unsigned8; |
| case Discriminant is |
| when 0 => |
| Optional_Field : T_unsigned8; |
| when others => |
| null; |
| end case; |
| end record; |
| |
| type Derived is new Rec (0); |
| |
| for Derived use record |
| Fixed_Field at 0 range 0 .. 7; |
| Discriminant at 0 range 8 .. 15; |
| Optional_Field at 0 range 16 .. 23; |
| end record; |
| |
| procedure Proc1 (R : in out Rec); |
| |
| procedure Proc2 (R : out Rec); |
| |
| end Derived_Type5_Pkg; |