summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/unc_memops.ads
blob: e64b3a62c406c13506ef1b83e95c2ff51ff404ea (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
with System;

package Unc_Memops is
   pragma Elaborate_Body;

   type size_t is mod 2 ** Standard'Address_Size;
   subtype addr_t is System.Address;

   function  Alloc (Size : size_t) return addr_t;
   procedure Free (Ptr : addr_t);
   function  Realloc (Ptr  : addr_t; Size : size_t) return addr_t;

   procedure Expect_Symetry (Status : Boolean);
   --  Whether we expect "free"s to match "alloc" return values in
   --  reverse order, like alloc->X, alloc->Y should be followed by
   --  free Y, free X.

private

   --  Uncomment the exports below to really exercise the alternate versions.

   --  This only works when using an installed version of the tools which
   --  grabs the runtime library objects from an archive, hence doesn't force
   --  the inclusion of s-memory.o.

   --  pragma Export (C, Alloc,   "__gnat_malloc");
   --  pragma Export (C, Free,    "__gnat_free");
   --  pragma Export (C, Realloc, "__gnat_realloc");

end;