Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gnat.dg/pack22_pkg.ads @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
package Pack22_Pkg is type byte is mod 256; Temp_buffer : array (0..8) of byte:= (others => 0); for Temp_buffer'Alignment use 2; subtype Id is Short_integer; generic Dummy : Integer := 0; package Bit_Map_Generic is type List is private; function "xor" (L, R : List) return List; private type Offset_T is range 0 .. Id'Last; type Counter_T is new short_integer; for Counter_T'Size use 16; type Bit_List is array (Id range <>) of Boolean; pragma Pack (Bit_List); type List_Counter_T (Is_Defined : Boolean := True) is record Dummy : Boolean := False; case Is_Defined is when True => Counter : Counter_T := 0; when False => null; end case; end record; for List_Counter_T use record Is_Defined at 0 range 0 .. 7; Dummy at 1 range 0 .. 7; Counter at 2 range 0 .. 15; end record; type List is record Offset : Offset_T := Offset_T (1) - 1; Counter : List_Counter_T; Bits : Bit_List (1 .. 6); end record; for List use record Offset at 0 range 0 .. 15; Counter at 2 range 0 .. 31; end record; type Iterator is record No_More_Id : Boolean := True; Current_Id : Id; The_List : List; end record; end Bit_Map_Generic; end Pack22_Pkg;