From 69d8d8b48db46c328cd16f3f2605677f35fe1362 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Fri, 16 Oct 2015 14:43:21 +0200 Subject: [PATCH] [multiple changes] 2015-10-16 Arnaud Charlet * 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 * 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. From-SVN: r228884 --- gcc/ada/ChangeLog | 14 ++++++++++++++ gcc/ada/a-textio.adb | 4 +--- gcc/ada/einfo.ads | 32 +++++++++----------------------- gcc/ada/exp_aggr.adb | 8 -------- gcc/ada/exp_ch4.adb | 8 ++------ gcc/ada/s-osprim-mingw.adb | 8 ++++++++ gcc/ada/s-osprim-x32.adb | 8 +------- gcc/ada/s-taprop-mingw.adb | 10 +++++++--- gcc/ada/s-taprop-posix.adb | 8 ++++---- 9 files changed, 46 insertions(+), 54 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d745cca7704..7b590421da1 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,17 @@ +2015-10-16 Arnaud Charlet + + * 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 + + * 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 * inline.adb (Subp_Info): Remove Listed component. diff --git a/gcc/ada/a-textio.adb b/gcc/ada/a-textio.adb index df5e18a7ee1..dc0b45358fe 100644 --- a/gcc/ada/a-textio.adb +++ b/gcc/ada/a-textio.adb @@ -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; diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index 07d9a9518c8..a31951f429d 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -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) diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index 5f4234a1078..cfb3b459055 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -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 diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 9a144fbae57..8cfcb66724f 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -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 diff --git a/gcc/ada/s-osprim-mingw.adb b/gcc/ada/s-osprim-mingw.adb index 13c5354b0d7..adda5146bf8 100644 --- a/gcc/ada/s-osprim-mingw.adb +++ b/gcc/ada/s-osprim-mingw.adb @@ -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 diff --git a/gcc/ada/s-osprim-x32.adb b/gcc/ada/s-osprim-x32.adb index e0c020c78f9..b457f5b3201 100644 --- a/gcc/ada/s-osprim-x32.adb +++ b/gcc/ada/s-osprim-x32.adb @@ -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 -- ----------------- diff --git a/gcc/ada/s-taprop-mingw.adb b/gcc/ada/s-taprop-mingw.adb index cecb7e5fabf..c945e1dfcc7 100644 --- a/gcc/ada/s-taprop-mingw.adb +++ b/gcc/ada/s-taprop-mingw.adb @@ -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 -- diff --git a/gcc/ada/s-taprop-posix.adb b/gcc/ada/s-taprop-posix.adb index cdbc0643d7a..992f3e7b002 100644 --- a/gcc/ada/s-taprop-posix.adb +++ b/gcc/ada/s-taprop-posix.adb @@ -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); -- 2.30.2