41 lines
941 B
Ada
41 lines
941 B
Ada
-- { dg-do compile }
|
|
|
|
procedure Discr38 is
|
|
|
|
type Enum is (OK,
|
|
NOT_CONNECTED,
|
|
DISCONNECTED,
|
|
REQUEST_Q_EMPTY,
|
|
SERVER_UNAVAILABLE,
|
|
BUFFER_TOO_SMALL,
|
|
NO_FREE_SLOT,
|
|
RAISE_EXCEPTION,
|
|
REQUEST_CANCELLED,
|
|
REQUEST_IN_PROGRESS,
|
|
SERVER_BUSY,
|
|
BLOCK_ACKNOWLEDGE);
|
|
|
|
type R (Status : Enum := OK) is record
|
|
Status_Block : Integer;
|
|
case Status is
|
|
when RAISE_EXCEPTION =>
|
|
I : Integer;
|
|
when OK =>
|
|
Length : Natural;
|
|
Data : Integer;
|
|
when others =>
|
|
null;
|
|
end case;
|
|
end record;
|
|
for R use record
|
|
Status at 0 range 0 .. 7;
|
|
Status_Block at 4 range 0 .. 31;
|
|
Length at 8 range 0 .. 31;
|
|
end record;
|
|
|
|
Nil : constant R := (OK, 1, 0, 1);
|
|
|
|
begin
|
|
null;
|
|
end;
|