35 lines
817 B
Ada
35 lines
817 B
Ada
-- { dg-do compile }
|
|
|
|
with System;
|
|
|
|
procedure frame_overflow is
|
|
|
|
type Bitpos_Range_T is range 1..2**(System.Word_Size-1)-1;
|
|
type Bitmap_Array_T is array (Bitpos_Range_T) of Boolean;
|
|
|
|
type Bitmap_T is record
|
|
Bits : Bitmap_Array_T := (others => False);
|
|
end record;
|
|
|
|
function -- { dg-error "too large" }
|
|
Set_In (Bitmap : Bitmap_T; Bitpos : Bitpos_Range_T) return Bitmap_T
|
|
is
|
|
Result: Bitmap_T := Bitmap; -- { dg-error "Storage_Error" }
|
|
begin
|
|
Result.Bits (Bitpos) := True;
|
|
return Result;
|
|
end;
|
|
|
|
function Negate (Bitmap : Bitmap_T) return Bitmap_T is
|
|
Result: Bitmap_T; -- { dg-error "Storage_Error" }
|
|
begin
|
|
for E in Bitpos_Range_T loop
|
|
Result.Bits (E) := not Bitmap.Bits (E);
|
|
end loop;
|
|
return Result;
|
|
end;
|
|
|
|
begin
|
|
null;
|
|
end;
|