--  { dg-do compile }
package body Iface_Test is
   protected SQLite_Safe is
      function Prepare_Select
        (DB   : DT_1;
         Iter : Standard.Iface_Test.Iface_2'Class)
      return Standard.Iface_Test.Iface_2'Class;
   end;

   overriding procedure Prepare_Select
     (DB   : DT_1;
      Iter : in out Standard.Iface_Test.Iface_2'Class)
   is
   begin
      Iter := SQLite_Safe.Prepare_Select (DB, Iter);  --  test
   end;

   protected body SQLite_Safe is
      function Prepare_Select
        (DB   : DT_1;
         Iter : Standard.Iface_Test.Iface_2'Class)
        return Standard.Iface_Test.Iface_2'Class
      is
      begin
         return Iter;
      end;
   end;
end;