[Ada] AI12-0293-1 Remove pragma Assert
authorBob Duff <duff@adacore.com>
Thu, 30 Apr 2020 18:40:26 +0000 (14:40 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 19 Jun 2020 08:17:20 +0000 (04:17 -0400)
2020-06-19  Bob Duff  <duff@adacore.com>

gcc/ada/

* libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
... raise Constraint_Error".

gcc/ada/libgnat/a-ststbo.adb

index 3b31acc0a5d5e342570a116282801be68d5ad3a4..4bd3c1742547e2e752e5ebe6b6c5c258cdad467d 100644 (file)
@@ -79,16 +79,19 @@ package body Ada.Streams.Storage.Bounded is
    overriding procedure Write
      (Stream : in out Stream_Type; Item : Stream_Element_Array)
    is
-      pragma Assert
-        (Element_Count (Stream) + Item'Length <= Stream.Max_Elements
-           or else (raise Constraint_Error));
-      --  That is a precondition in the RM
-
-      New_Count : constant Stream_Element_Count :=
-        Element_Count (Stream) + Item'Length;
    begin
-      Stream.Elements (Element_Count (Stream) + 1 .. New_Count) := Item;
-      Stream.Count := New_Count;
+      if Element_Count (Stream) + Item'Length > Stream.Max_Elements then
+         --  That is a precondition in the RM
+         raise Constraint_Error;
+      end if;
+
+      declare
+         New_Count : constant Stream_Element_Count :=
+           Element_Count (Stream) + Item'Length;
+      begin
+         Stream.Elements (Element_Count (Stream) + 1 .. New_Count) := Item;
+         Stream.Count := New_Count;
+      end;
    end Write;
 
    -------------------