summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/slice4.adb
blob: a7890a2106812525392453bfdac0c9c6a47101b3 (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
-- { dg-do run }

procedure Slice4 is

   type Varray is array (1 .. 1) of Natural;  -- SImode

   type Rec is record
      Values : Varray;
   end record;

   type Sample is record
      Maybe  : Boolean;
      R : Rec;
   end record;
   pragma Pack (Sample);

   function Match (X, Y: Sample; Length : Positive) return Boolean is
   begin
      return X.R.Values (1 .. Length) = Y.R.Values (1 .. Length);
   end;

   X, Y : Sample := (Maybe => True, R => (Values => (1 => 1)));
begin
   X.Maybe := False;
   if not Match (X, Y, 1) then
      raise Program_Error;
   end if;
end;