[Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def types
authorBob Duff <duff@adacore.com>
Tue, 7 Jul 2020 18:36:50 +0000 (14:36 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Mon, 19 Oct 2020 09:53:38 +0000 (05:53 -0400)
gcc/ada/

* libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
Iterate.

gcc/ada/libgnat/a-cidlli.adb
gcc/ada/libgnat/a-coinve.adb

index ea962c32cf6f8a95f960d478484088c80b85f3aa..29286063d39c4c62eed4bce1d748e68693dff3f7 100644 (file)
@@ -1307,19 +1307,22 @@ is
    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;
 
index 5999a2c2d308bec8e9afc9a9a9d8837383d4bfdd..48e81f15cb0e8afc4b6d62aaa86d87f142714a3f 100644 (file)
@@ -2659,19 +2659,22 @@ is
    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;