| -- { 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; |