[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 10 Oct 2014 13:28:21 +0000 (15:28 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 10 Oct 2014 13:28:21 +0000 (15:28 +0200)
2014-10-10  Robert Dewar  <dewar@adacore.com>

* sem_ch13.adb: Minor code reorganization.

2014-10-10  Pat Rogers  <rogers@adacore.com>

* gnat_rm.texi: Text now indicates pragma No_Run_Time is not
for users.

2014-10-10  Vadim Godunko  <godunko@adacore.com>

* a-coinho-shared.adb: Add minor comment.
* a-stzmap.adb (To_Sequence): Compute size of result array.

From-SVN: r216081

gcc/ada/ChangeLog
gcc/ada/a-coinho-shared.adb
gcc/ada/a-stzmap.adb
gcc/ada/gnat_rm.texi
gcc/ada/sem_ch13.adb

index d8408eb3d35660379a1ae5bad760e7780890b5ce..c7df2c19c7d78c0f981e26ed1538452d2fdb9f6f 100644 (file)
@@ -1,3 +1,17 @@
+2014-10-10  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch13.adb: Minor code reorganization.
+
+2014-10-10  Pat Rogers  <rogers@adacore.com>
+
+       * gnat_rm.texi: Text now indicates pragma No_Run_Time is not
+       for users.
+
+2014-10-10  Vadim Godunko  <godunko@adacore.com>
+
+       * a-coinho-shared.adb: Add minor comment.
+       * a-stzmap.adb (To_Sequence): Compute size of result array.
+
 2014-10-10  Javier Miranda  <miranda@adacore.com>
 
        * exp_ch3.adb (Build_Init_Procedure): Complete the condition of an
index 1f3d8bc5f91b05fdc0092d4f30e3ec87e4a92c1b..94d4fe4249fd88a3b94b6343cca5af03d3f08024 100644 (file)
 -- <http://www.gnu.org/licenses/>.                                          --
 ------------------------------------------------------------------------------
 
+--  Note: special attention must be paid to the case of simultaneous access
+--  to internal shared objects and elements by difference tasks. The Reference
+--  counter of internal shared object is the only component protected using
+--  atomic operations; other components and elements can be modified only when
+--  reference counter is equal to one (so there are no other references to this
+--  internal shared object and element).
+
 with Ada.Unchecked_Deallocation;
 
 package body Ada.Containers.Indefinite_Holders is
index 08cae19bd83e7628cbabde6944d03e4f5eb80b14..0afe4ff868f94111e39c9b2d0f0a352a258686ea 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -570,20 +570,25 @@ package body Ada.Strings.Wide_Wide_Maps is
    function To_Sequence
      (Set : Wide_Wide_Character_Set) return Wide_Wide_Character_Sequence
    is
-      SS : constant Wide_Wide_Character_Ranges_Access := Set.Set;
-
-      Result : Wide_Wide_String (Positive range 1 .. 2 ** 16);
-      N      : Natural := 0;
+      SS    : constant Wide_Wide_Character_Ranges_Access := Set.Set;
+      N     : Natural := 0;
+      Count : Natural := 0;
 
    begin
       for J in SS'Range loop
-         for K in SS (J).Low .. SS (J).High loop
-            N := N + 1;
-            Result (N) := K;
-         end loop;
+         Count :=
+           Count + (Wide_Wide_Character'Pos (SS (J).High) -
+                    Wide_Wide_Character'Pos (SS (J).Low) + 1);
       end loop;
 
-      return Result (1 .. N);
+      return Result : Wide_Wide_String (1 .. Count) do
+         for J in SS'Range loop
+            for K in SS (J).Low .. SS (J).High loop
+               N := N + 1;
+               Result (N) := K;
+            end loop;
+         end loop;
+      end return;
    end To_Sequence;
 
    ------------
index e5a52bc23f1c3153709215bd4a1c7941b2a09aca..5554f68db4da843f9669922ffaba7544e8ba840a 100644 (file)
@@ -4748,11 +4748,9 @@ pragma No_Run_Time;
 
 @noindent
 This is an obsolete configuration pragma that historically was used to
-setup what is now called the "zero footprint" library. It causes any
-library units outside this basic library to be ignored. The use of
-this pragma has been superseded by the general configurable run-time
-capability of @code{GNAT} where the compiler takes into account whatever
-units happen to be accessible in the library.
+set up a runtime library with no object code. It is now used only for
+internal testing. The pragma has been superseded by the reconfigurable
+runtime capability of @code{GNAT}.
 
 @node Pragma No_Strict_Aliasing
 @unnumberedsec Pragma No_Strict_Aliasing
index 10f4a7480b617ba4eb90ea1f16a6ea243d314abf..709dabe29db055c555f5c61dad9f6cc2736eca53 100644 (file)
@@ -10706,10 +10706,11 @@ package body Sem_Ch13 is
             Set_Has_Inheritable_Invariants (Typ);
          end if;
 
-      --  If the full view of the type is a scalar type or array type, the
-      --  implicit base type created for it has the same invariant.
+      --  If we have a subtype with invariants, whose base type does not have
+      --  invariants, copy these invariants to the base type. This happens for
+      --  the case of implicit base types created for scalar and array types.
 
-      elsif Has_Invariants (Typ) and then Base_Type (Typ) /= Typ
+      elsif Has_Invariants (Typ)
         and then not Has_Invariants (Base_Type (Typ))
       then
          Set_Has_Invariants (Base_Type (Typ));