gdb/testsuite: fix gdb.trace/signal.exp on x86
[binutils-gdb/blckswan.git] / gdb / testsuite / gdb.ada / varsize_limit / vsizelim.adb
blob298d0d524d1008c3e3d21e202a802b7ff8167026
1 -- Copyright 2018-2022 Free Software Foundation, Inc.
2 --
3 -- This program is free software; you can redistribute it and/or modify
4 -- it under the terms of the GNU General Public License as published by
5 -- the Free Software Foundation; either version 3 of the License, or
6 -- (at your option) any later version.
7 --
8 -- This program is distributed in the hope that it will be useful,
9 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
10 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 -- GNU General Public License for more details.
13 -- You should have received a copy of the GNU General Public License
14 -- along with this program. If not, see <http://www.gnu.org/licenses/>.
16 with Pck; use Pck;
17 with System;
18 with Unchecked_Conversion;
20 procedure VsizeLim is
21 Small : String := Ident ("1234567890");
22 Larger : String := Ident ("1234567890|1234567890|1234567890");
24 type String_Ptr is access all String;
25 type Big_String_Ptr is access all String (Positive);
27 function To_Ptr is
28 new Unchecked_Conversion (System.Address, Big_String_Ptr);
30 Name_Str : String_Ptr := new String'(Larger);
31 Name : Big_String_Ptr := To_Ptr (Name_Str.all'Address);
33 type Table is array (Positive range <>) of Integer;
34 type Object (N : Integer) is record
35 Data : Table (1 .. N);
36 end record;
38 BA : Object := (N => 1_000_000, Data => (others => 0));
40 begin
41 for I in 1 .. 10 loop
42 BA.Data(I) := I;
43 end loop;
45 Do_Nothing (Small'Address); -- STOP
46 Do_Nothing (Larger'Address);
47 Do_Nothing (Name'Address);
48 Do_Nothing (BA'Address);
49 end VsizeLim;