gcc/ada/
	* libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
	Iterate.
    is
       First_Time : Boolean := True;
       use System.Put_Images;
-   begin
-      Array_Before (S);
 
-      for X of V loop
+      procedure Put_Elem (Position : Cursor);
+      procedure Put_Elem (Position : Cursor) is
+      begin
          if First_Time then
             First_Time := False;
          else
             Simple_Array_Between (S);
          end if;
 
-         Element_Type'Put_Image (S, X);
-      end loop;
+         Element_Type'Put_Image (S, Element (Position));
+      end Put_Elem;
 
+   begin
+      Array_Before (S);
+      Iterate (V, Put_Elem'Access);
       Array_After (S);
    end Put_Image;
 
 
    is
       First_Time : Boolean := True;
       use System.Put_Images;
-   begin
-      Array_Before (S);
 
-      for X of V loop
+      procedure Put_Elem (Position : Cursor);
+      procedure Put_Elem (Position : Cursor) is
+      begin
          if First_Time then
             First_Time := False;
          else
             Simple_Array_Between (S);
          end if;
 
-         Element_Type'Put_Image (S, X);
-      end loop;
+         Element_Type'Put_Image (S, Element (Position));
+      end Put_Elem;
 
+   begin
+      Array_Before (S);
+      Iterate (V, Put_Elem'Access);
       Array_After (S);
    end Put_Image;