--  { dg-do run }

with Interfaces.C; use Interfaces.C;
with Interfaces.C.Strings; use Interfaces.C.Strings;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;

procedure memorytest is

   function malloc (size: size_t) return chars_ptr;
   pragma Import (C, malloc);

   C : chars_ptr;

begin
   --  Allocate a string in C ...
   C := malloc (1000);
   -- ... and free it with the GNAT runtime
   Free (C);

   --  now allocate something completely unrelated and free it
   declare
      A2 : Unbounded_String := To_Unbounded_String ("hello");
   begin
      null;
   end;
end;