blob: e1ff4d3653351503de4cf7054af96034c41240cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
-- { 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
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;
|