39 lines
799 B
Ada
39 lines
799 B
Ada
-- { dg-do run }
|
|
|
|
with Ada.Streams.Stream_IO;
|
|
|
|
procedure In_Out_Parameter is
|
|
|
|
use Ada.Streams; use Stream_IO;
|
|
|
|
File : Stream_IO.File_Type;
|
|
|
|
type Bitmap is array (Natural range <>) of Boolean;
|
|
for Bitmap'Component_Size use 1;
|
|
|
|
type Message is record
|
|
B : Bitmap (0 .. 14);
|
|
end record;
|
|
for Message use record
|
|
B at 0 range 2 .. 16;
|
|
end record;
|
|
|
|
TX, RX : Message;
|
|
|
|
begin
|
|
|
|
TX.B := (others => False);
|
|
Stream_IO.Create (File => File, Mode => Out_File, Name => "data");
|
|
Message'Output (Stream (File), TX);
|
|
Stream_IO.Close (File);
|
|
--
|
|
Stream_IO.Open (File => File, Mode => In_File, Name => "data");
|
|
RX := Message'Input (Stream (File));
|
|
Stream_IO.Close (File);
|
|
|
|
if RX /= TX then
|
|
raise Program_Error;
|
|
end if;
|
|
|
|
end In_Out_Parameter;
|