Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gnat.dg/allocator_maxalign1.adb @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
-- { dg-do run } with System.Storage_Elements; use System.Storage_Elements; with Ada.Unchecked_Deallocation; procedure Allocator_Maxalign1 is Max_Alignment : constant := Standard'Maximum_Alignment; type Block is record X : Integer; end record; for Block'Alignment use Standard'Maximum_Alignment; type Block_Access is access all Block; procedure Free is new Ada.Unchecked_Deallocation (Block, Block_Access); N_Blocks : constant := 500; Blocks : array (1 .. N_Blocks) of Block_Access; begin if Block'Alignment /= Max_Alignment then raise Program_Error; end if; for K in 1 .. 4 loop for I in Blocks'Range loop Blocks (I) := new Block; if Blocks (I).all'Address mod Block'Alignment /= 0 then raise Program_Error; end if; Blocks(I).all.X := I; end loop; for I in Blocks'Range loop Free (Blocks (I)); end loop; end loop; end;