41 lines
820 B
Ada
41 lines
820 B
Ada
-- { dg-do run }
|
|
|
|
with GNAT.Table;
|
|
with Ada.Text_IO; use Ada.Text_IO;
|
|
|
|
procedure test_table1 is
|
|
type Rec is record
|
|
A, B, C, D, E : Integer := 0;
|
|
F, G, H, I, J : Integer := 1;
|
|
K, L, M, N, O : Integer := 2;
|
|
end record;
|
|
|
|
R : Rec;
|
|
|
|
package Tab is new GNAT.Table (Rec, Positive, 1, 4, 30);
|
|
|
|
Last : Natural;
|
|
|
|
begin
|
|
R.O := 3;
|
|
|
|
Tab.Append (R);
|
|
|
|
for J in 1 .. 1_000_000 loop
|
|
Last := Tab.Last;
|
|
begin
|
|
Tab.Append (Tab.Table (Last));
|
|
exception
|
|
when others =>
|
|
Put_Line ("exception raise for J =" & J'Img);
|
|
raise;
|
|
end;
|
|
|
|
if Tab.Table (Tab.Last) /= R then
|
|
Put_Line ("Last is not what is expected");
|
|
Put_Line (J'Img);
|
|
return;
|
|
end if;
|
|
end loop;
|
|
end;
|