Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gnat.dg/pack17.adb @ 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
-- { dg-do run } procedure Pack17 is type Bitmap_T is array (Natural range <>) of Boolean; pragma Pack (Bitmap_T); type Uint8 is range 0 .. 2 ** 8 - 1; for Uint8'Size use 8; type Record_With_QImode_Variants (D : Boolean) is record C_Filler : Bitmap_T (1..7); C_Map : Bitmap_T (1..3); case D is when False => F_Bit : Boolean; F_Filler : Bitmap_T (1..7); when True => T_Int : Uint8; end case; end record; pragma Pack (Record_With_QImode_Variants); procedure Fill (R : out Record_With_QImode_Variants) is begin R.C_Filler := (True, False, True, False, True, False, True); R.C_Map := (True, False, True); R.T_Int := 17; end; RT : Record_With_QImode_Variants (D => True); begin Fill (RT); if RT.T_Int /= 17 then raise Program_Error; end if; end;