bit_packed_array3.adb

来自「用于进行gcc测试」· ADB 代码 · 共 41 行

ADB
41
字号
-- { dg-do run }-- { dg-options "-O2 -gnatp" }procedure Bit_Packed_Array3 is   type Bitmap_T is array (1 .. 10) of Boolean;   pragma Pack (Bitmap_T);   type Maps_T is record      M1 : Bitmap_T;   end record;   pragma Pack (Maps_T);   for Maps_T'Size use 10;   pragma Suppress_Initialization (Maps_T);   Tmap : constant Bitmap_T := (others => True);   Fmap : constant Bitmap_T := (others => False);   Amap : constant Bitmap_T :=     (1 => False, 2 => True, 3 => False, 4 => True, 5 => False,      6 => True, 7 => False, 8 => True, 9 => False, 10 => True);   function Some_Maps return Maps_T is      Value : Maps_T := (M1 => Amap);   begin      return Value;   end;   pragma Inline (Some_Maps);   Maps : Maps_T;begin   Maps := Some_Maps;   for I in Maps.M1'Range loop      if (I mod 2 = 0 and then not Maps.M1 (I))        or else (I mod 2 /= 0 and then Maps.M1 (I))      then         raise Program_Error;      end if;   end loop;end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?