2015-10-16 Arnaud Charlet <charlet@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Oct 2015 12:43:21 +0000 (12:43 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Oct 2015 12:43:21 +0000 (12:43 +0000)
* s-osprim-mingw.adb, s-osprim-x32.adb, s-taprop-mingw.adb,
s-taprop-posix.adb (Monotonic_Clock): Removed, not used.
Remove remaining references to OS_Primitives.Monotonic_Clock.
Keep it only on windows which is a special case.

2015-10-16  Javier Miranda  <miranda@adacore.com>

* a-textio.adb (Get_Line): Fix documentation.
* einfo.ads (Interface_Name): Fix documentation.
* exp_aggr.adb (Backend_Processing_Possible): Fix documentation.
* exp_ch4.adb (Expand_N_In): Fix documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228884 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/a-textio.adb
gcc/ada/einfo.ads
gcc/ada/exp_aggr.adb
gcc/ada/exp_ch4.adb
gcc/ada/s-osprim-mingw.adb
gcc/ada/s-osprim-x32.adb
gcc/ada/s-taprop-mingw.adb
gcc/ada/s-taprop-posix.adb

index d745cca..7b59042 100644 (file)
@@ -1,3 +1,17 @@
+2015-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * s-osprim-mingw.adb, s-osprim-x32.adb, s-taprop-mingw.adb,
+       s-taprop-posix.adb (Monotonic_Clock): Removed, not used.
+       Remove remaining references to OS_Primitives.Monotonic_Clock.
+       Keep it only on windows which is a special case.
+
+2015-10-16  Javier Miranda  <miranda@adacore.com>
+
+       * a-textio.adb (Get_Line): Fix documentation.
+       * einfo.ads (Interface_Name): Fix documentation.
+       * exp_aggr.adb (Backend_Processing_Possible): Fix documentation.
+       * exp_ch4.adb (Expand_N_In): Fix documentation.
+
 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
 
        * inline.adb (Subp_Info): Remove Listed component.
index df5e18a..dc0b453 100644 (file)
@@ -693,9 +693,7 @@ package body Ada.Text_IO is
       Item : out String;
       Last : out Natural) is separate;
    --  The implementation of Ada.Text_IO.Get_Line is split into a subunit so
-   --  that different implementations can be used on different systems. In
-   --  particular the standard implementation uses low level stuff that is
-   --  not appropriate for the VMs.
+   --  that different implementations can be used on different systems.
 
    procedure Get_Line
      (Item : out String;
index 07d9a95..a31951f 100644 (file)
@@ -2122,25 +2122,14 @@ package Einfo is
 
 --    Interface_Name (Node21)
 --       Defined in constants, variables, exceptions, functions, procedures,
---       packages, components (JGNAT only), discriminants (JGNAT only), and
---       access to subprograms (JGNAT only). Set to Empty unless an export,
---       import, or interface name pragma has explicitly specified an external
---       name, in which case it references an N_String_Literal node for the
---       specified external name. Note that if this field is Empty, and
---       Is_Imported or Is_Exported is set, then the default interface name
---       is the name of the entity, cased in a manner that is appropriate to
---       the system in use. Note that Interface_Name is ignored if an address
---       clause is present (since it is meaningless in this case).
---
---       An additional special case usage of this field is in JGNAT for
---       E_Component and E_Discriminant. JGNAT allows these entities to be
---       imported by specifying pragma Import within a component's containing
---       record definition. This supports interfacing to object fields defined
---       within Java classes, and such pragmas are generated by the jvm2ada
---       binding generator tool whenever it processes classes with public
---       object fields. A pragma Import for a component can define the
---       External_Name of the imported Java field (which is generally needed,
---       because Java names are case sensitive).
+--       and packages. Set to Empty unless an export, import, or interface name
+--       pragma has explicitly specified an external name, in which case it
+--       references an N_String_Literal node for the specified external name.
+--       Note that if this field is Empty, and Is_Imported or Is_Exported is
+--       set, then the default interface name is the name of the entity, cased
+--       in a manner that is appropriate to the system in use. Note that
+--       Interface_Name is ignored if an address clause is present (since it
+--       is meaningless in this case).
 
 --    Interfaces (Elist25)
 --       Defined in record types and subtypes. List of abstract interfaces
@@ -3070,7 +3059,7 @@ package Einfo is
 --       vtable (i.e. the one to be extended by derivation).
 
 --    Is_Tagged_Type (Flag55)
---       Defined in all entities. Set for an entity that is a tagged type
+--       Defined in all entities. Set for an entity that is a tagged type.
 
 --    Is_Task_Interface (synthesized)
 --       Defined in types that are interfaces. True if interface is declared as
@@ -5513,7 +5502,6 @@ package Einfo is
    --  E_Access_Subprogram_Type
    --    Equivalent_Type                     (Node18)   (remote types only)
    --    Directly_Designated_Type            (Node20)
-   --    Interface_Name                      (Node21)   (JGNAT usage only)
    --    Needs_No_Actuals                    (Flag22)
    --    Original_Access_Type                (Node28)
    --    Can_Use_Internal_Rep                (Flag229)
@@ -5619,7 +5607,6 @@ package Einfo is
    --    Prival                              (Node17)
    --    Renamed_Object                      (Node18)   (always Empty)
    --    Discriminant_Checking_Func          (Node20)
-   --    Interface_Name                      (Node21)   (JGNAT usage only)
    --    Original_Record_Component           (Node22)
    --    DT_Offset_To_Top_Func               (Node25)
    --    Related_Type                        (Node27)
@@ -5712,7 +5699,6 @@ package Einfo is
    --    Renamed_Object                      (Node18)   (always Empty)
    --    Corresponding_Discriminant          (Node19)
    --    Discriminant_Default_Value          (Node20)
-   --    Interface_Name                      (Node21)   (JGNAT usage only)
    --    Original_Record_Component           (Node22)
    --    CR_Discriminant                     (Node23)
    --    Is_Return_Object                    (Flag209)
index 5f4234a..cfb3b45 100644 (file)
@@ -536,8 +536,6 @@ package body Exp_Aggr is
 
    --   10. No controlled actions need to be generated for components
 
-   --   11. For a VM back end, the array should have no aliased components
-
    function Backend_Processing_Possible (N : Node_Id) return Boolean is
       Typ : constant Entity_Id := Etype (N);
       --  Typ is the correct constrained array subtype of the aggregate
@@ -3657,12 +3655,6 @@ package body Exp_Aggr is
          --  present we can proceed since the bounds can be obtained from the
          --  aggregate.
 
-         --  Note: This case is required in VM platforms since their backends
-         --  normalize array indexes in the range 0 .. N-1. Hence, if we do
-         --  not flat an array whose bounds cannot be obtained from the type
-         --  of the index the backend has no way to properly generate the code.
-         --  See ACATS c460010 for an example.
-
          if Hiv < Lov
            or else (not Compile_Time_Known_Value (Blo) and then Others_Present)
          then
index 9a144fb..8cfcb66 100644 (file)
@@ -5806,9 +5806,7 @@ package body Exp_Ch4 is
             if Is_Tagged_Type (Typ) then
 
                --  No expansion will be performed for VM targets, as the VM
-               --  back-ends will handle the membership tests directly (tags
-               --  are not explicitly represented in VM objects, so the
-               --  normal tagged membership expansion is not what we want).
+               --  back-ends will handle the membership tests directly.
 
                if Tagged_Type_Expansion then
                   Tagged_Membership (N, SCIL_Node, New_N);
@@ -6067,9 +6065,7 @@ package body Exp_Ch4 is
 
                         --  No expansion will be performed for VM targets, as
                         --  the VM back-ends will handle the membership tests
-                        --  directly (tags are not explicitly represented in
-                        --  objects, so the normal tagged membership
-                        --  expansion is not what we want).
+                        --  directly.
 
                         if Tagged_Type_Expansion then
 
index 13c5354..adda514 100644 (file)
@@ -90,6 +90,14 @@ package body System.OS_Primitives is
    Signature : Signature_Type := 0;
    pragma Atomic (Signature);
 
+   function Monotonic_Clock return Duration;
+   pragma Export (Ada, Monotonic_Clock, "__gnat_monotonic_clock");
+   --  Return "absolute" time, represented as an offset relative to "the Unix
+   --  Epoch", which is Jan 1, 1970 00:00:00 UTC. This clock implementation is
+   --  immune to the system's clock changes.
+   --  Export this function so that it can be imported from s-taprop-mingw.adb
+   --  without changing the shared spec (s-osprim.ads).
+
    procedure Get_Base_Time (Data : in out Clock_Data);
    --  Retrieve the base time and base ticks. These values will be used by
    --  clock to compute the current time by adding to it a fraction of the
index e0c020c..b457f5b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---             Copyright (C) 2013-2014, Free Software Foundation, Inc.      --
+--             Copyright (C) 2013-2015, Free Software Foundation, Inc.      --
 --                                                                          --
 -- GNARL 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- --
@@ -88,12 +88,6 @@ package body System.OS_Primitives is
       return Duration (sec) + Duration (usec) / Micro;
    end Clock;
 
-   ---------------------
-   -- Monotonic_Clock --
-   ---------------------
-
-   function Monotonic_Clock return Duration renames Clock;
-
    -----------------
    -- To_Timespec --
    -----------------
index cecb7e5..c945e1d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2015, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNARL 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- --
@@ -1068,8 +1068,12 @@ package body System.Task_Primitives.Operations is
    -- Monotonic_Clock --
    ---------------------
 
-   function Monotonic_Clock return Duration
-     renames System.OS_Primitives.Monotonic_Clock;
+   function Monotonic_Clock return Duration is
+      function Internal_Clock return Duration;
+      pragma Import (Ada, Internal_Clock, "__gnat_monotonic_clock");
+   begin
+      return Internal_Clock;
+   end Monotonic_Clock;
 
    -------------------
    -- RT_Resolution --
index cdbc064..992f3e7 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2015, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNARL 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- --
@@ -293,10 +293,10 @@ package body System.Task_Primitives.Operations is
 
       else
          declare
-            Cal_Check_Time : constant Duration :=
-                               OS_Primitives.Monotonic_Clock;
+            Cal_Check_Time : constant Duration := OS_Primitives.Clock;
             RT_Time        : constant Duration :=
-                               Time + Check_Time - Cal_Check_Time;
+              Time + Check_Time - Cal_Check_Time;
+
          begin
             Abs_Time :=
               Duration'Min (Check_Time + Max_Sensible_Delay, RT_Time);