34 lines
669 B
Ada
34 lines
669 B
Ada
with System, System.Storage_Elements;
|
|
use System.Storage_Elements;
|
|
|
|
package body Allocator_Maxalign2 is
|
|
|
|
Max_Align : constant Storage_Offset := Standard'Maximum_Alignment;
|
|
|
|
procedure Validate is
|
|
use type System.Address;
|
|
begin
|
|
if Addr mod Max_Align /= 0 then
|
|
raise Program_Error;
|
|
end if;
|
|
end;
|
|
|
|
procedure Check is
|
|
I : Integer;
|
|
B : Block;
|
|
type Block_Access is access all Block;
|
|
A : Block_Access;
|
|
begin
|
|
Addr := I'Address;
|
|
Addr := B'Address;
|
|
Validate;
|
|
for I in 1 .. 50 loop
|
|
A := new Block;
|
|
Addr := A.all'Address;
|
|
Validate;
|
|
end loop;
|
|
|
|
end;
|
|
|
|
end;
|