From 8713f96dad5ccc6f38dd5d3ae8342b6fd4a1bd77 Mon Sep 17 00:00:00 2001 From: charlet Date: Mon, 20 Apr 2009 12:30:25 +0000 Subject: [PATCH] 2009-04-20 Ed Schonberg * rtsfind.adb (RTE, RTE_Record_Component): In Configurable_Run_Time_Mode, do not enable front-end inlining. 2009-04-20 Thomas Quinot * g-socthi-vms.adb: Remove now unnecessary WITH clause on System.Address_To_Access_Conversions. 2009-04-20 Ed Schonberg * sem.adb: Guard against ill-formed subunits. 2009-04-20 Hristian Kirtchev * a-calfor.adb (Image): Subtract 0.5 from the sub second component only when it is positive. This avoids a potential constraint error raised by the conversion to Natural. 2009-04-20 Thomas Quinot * einfo.ads: Minor comment rewording * sem_aggr.adb: Minor comment rewording * sem_ch3.adb, sem_ch6.adb: Minor reformatting 2009-04-20 Pascal Obry * adaint.c (__gnat_is_readable_file): Check for file existence when not using ACL (always the case on remote drives). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146405 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ gcc/ada/a-calfor.adb | 14 ++++++++++-- gcc/ada/einfo.ads | 2 +- gcc/ada/g-socthi-vms.adb | 25 ++++++++++------------ gcc/ada/rtsfind.adb | 10 ++------- gcc/ada/sem.adb | 6 ++++-- gcc/ada/sem_aggr.adb | 4 ++-- 7 files changed, 87 insertions(+), 29 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 0cb7855..ddab7af 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,58 @@ +2009-04-20 Ed Schonberg + + * rtsfind.adb (RTE, RTE_Record_Component): In + Configurable_Run_Time_Mode, do not enable front-end inlining. + +2009-04-20 Thomas Quinot + + * g-socthi-vms.adb: Remove now unnecessary WITH clause on + System.Address_To_Access_Conversions. + +2009-04-20 Ed Schonberg + + * sem.adb: Guard against ill-formed subunits. + +2009-04-20 Bob Duff + + * output.adb (Flush_Buffer): Do not indent blank lines. + (Ignore_Output): New procedure for output suppression. + +2009-04-20 Hristian Kirtchev + + * a-calfor.adb (Image): Subtract 0.5 from the sub second component only + when it is positive. This avoids a potential constraint error raised + by the conversion to Natural. + +2009-04-20 Gary Dismukes + + * exp_ch5.adb (Expand_Assign_Array): For the case where the assignment + involves a target that has a specified address, don't set Forward_OK + and Backward_OK to False if the rhs is an aggregate, since overlap + can't occur. + +2009-04-20 Ed Schonberg + + * sem_ch8,adb (Analyze_Object_Renaming): Reject ambiguous expressions + in an object renaming declaration when the expected type is an + anonymous access type. + + * sem_type.adb (Disambiguate): Use anonymousness to resolve a potential + ambiguity when one interpretation is an anonymous access type and the + other is a named access type, and the context itself is anonymous + +2009-04-20 Thomas Quinot + + * einfo.ads: Minor comment rewording + + * sem_aggr.adb: Minor comment rewording + + * sem_ch3.adb, sem_ch6.adb: Minor reformatting + +2009-04-20 Pascal Obry + + * adaint.c (__gnat_is_readable_file): Check for file existence + when not using ACL (always the case on remote drives). + 2009-04-20 Robert Dewar * sinfo.ads: Minor comment fixes diff --git a/gcc/ada/a-calfor.adb b/gcc/ada/a-calfor.adb index 83d9cdc..10e9617 100644 --- a/gcc/ada/a-calfor.adb +++ b/gcc/ada/a-calfor.adb @@ -170,7 +170,12 @@ package body Ada.Calendar.Formatting is -- Prevent rounding when converting to natural - Sub_Second := Sub_Second * 100.0 - 0.5; + Sub_Second := Sub_Second * 100.0; + + if Sub_Second > 0.0 then + Sub_Second := Sub_Second - 0.5; + end if; + SS_Nat := Natural (Sub_Second); declare @@ -249,7 +254,12 @@ package body Ada.Calendar.Formatting is -- Prevent rounding when converting to natural - Sub_Second := Sub_Second * 100.0 - 0.5; + Sub_Second := Sub_Second * 100.0; + + if Sub_Second > 0.0 then + Sub_Second := Sub_Second - 0.5; + end if; + SS_Nat := Natural (Sub_Second); declare diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index 87bddb9..c0ee644 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -2637,7 +2637,7 @@ package Einfo is -- Present in all entities. Set only in record types that represent the -- underlying record view. This view is built for derivations of types -- with unknown discriminants; it is a record with the same structure --- than its corresponding record type, and whose parent is the full view +-- as its corresponding record type, but whose parent is the full view -- of the parent in the original type extension. -- Is_Unsigned_Type (Flag144) diff --git a/gcc/ada/g-socthi-vms.adb b/gcc/ada/g-socthi-vms.adb index ab14d8e..afadbb2 100644 --- a/gcc/ada/g-socthi-vms.adb +++ b/gcc/ada/g-socthi-vms.adb @@ -31,31 +31,28 @@ -- -- ------------------------------------------------------------------------------ --- Temporary version for Alpha/VMS +-- This is the version for OpenVMS with GNAT.OS_Lib; use GNAT.OS_Lib; with GNAT.Task_Lock; with Interfaces.C; use Interfaces.C; -with System.Address_To_Access_Conversions; - package body GNAT.Sockets.Thin is Non_Blocking_Sockets : aliased Fd_Set; - -- When this package is initialized with Process_Blocking_IO set - -- to True, sockets are set in non-blocking mode to avoid blocking - -- the whole process when a thread wants to perform a blocking IO - -- operation. But the user can also set a socket in non-blocking - -- mode by purpose. In order to make a difference between these - -- two situations, we track the origin of non-blocking mode in - -- Non_Blocking_Sockets. If S is in Non_Blocking_Sockets, it has - -- been set in non-blocking mode by the user. + -- When this package is initialized with Process_Blocking_IO set to True, + -- sockets are set in non-blocking mode to avoid blocking the whole process + -- when a thread wants to perform a blocking IO operation. But the user can + -- also set a socket in non-blocking mode by purpose. In order to make a + -- difference between these two situations, we track the origin of + -- non-blocking mode in Non_Blocking_Sockets. If S is in + -- Non_Blocking_Sockets, it has been set in non-blocking mode by the user. Quantum : constant Duration := 0.2; - -- When SOSC.Thread_Blocking_IO is False, we set sockets in - -- non-blocking mode and we spend a period of time Quantum between - -- two attempts on a blocking operation. + -- When SOSC.Thread_Blocking_IO is False, we set sockets to non-blocking + -- mode and we spend a period of time Quantum between two attempts on a + -- blocking operation. Unknown_System_Error : constant C.Strings.chars_ptr := C.Strings.New_String ("Unknown system error"); diff --git a/gcc/ada/rtsfind.adb b/gcc/ada/rtsfind.adb index fbe6d45..774cce1 100644 --- a/gcc/ada/rtsfind.adb +++ b/gcc/ada/rtsfind.adb @@ -950,9 +950,6 @@ package body Rtsfind is -- and it prevents spurious visibility conflicts between use-visible -- user entities, and entities in run-time packages. - -- In configurable run-time mode, subprograms marked Inline_Always must - -- be inlined, so in the case we retain the Front_End_Inlining mode. - Save_Front_End_Inlining : Boolean; procedure Check_RPC; @@ -1068,7 +1065,7 @@ package body Rtsfind is end if; Save_Front_End_Inlining := Front_End_Inlining; - Front_End_Inlining := Configurable_Run_Time_Mode; + Front_End_Inlining := False; -- Load unit if unit not previously loaded @@ -1187,9 +1184,6 @@ package body Rtsfind is -- is both efficient, and it prevents spurious visibility conflicts -- between use-visible user entities, and entities in run-time packages. - -- In configurable run-time mode, subprograms marked Inline_Always must - -- be inlined, so in the case we retain the Front_End_Inlining mode. - Save_Front_End_Inlining : Boolean; begin @@ -1198,7 +1192,7 @@ package body Rtsfind is -- declarations. Save_Front_End_Inlining := Front_End_Inlining; - Front_End_Inlining := Configurable_Run_Time_Mode; + Front_End_Inlining := False; -- Load unit if unit not previously loaded diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb index 5e2fa1b..ce3cb4c 100644 --- a/gcc/ada/sem.adb +++ b/gcc/ada/sem.adb @@ -1401,13 +1401,15 @@ package body Sem is -- Comp_Unit_List, if appropriate. This is done after analysis, so if -- this unit depends on some others, they have already been -- appended. We ignore bodies, except for the main unit itself, and - -- everything those bodies depend upon. + -- everything those bodies depend upon. We have also to guard against + -- ill-formed subunits that have an improper context. if Ignore_Comp_Units then Do_Analyze; pragma Assert (Ignore_Comp_Units); -- still - elsif Nkind (Unit (Comp_Unit)) in N_Proper_Body + elsif Present (Comp_Unit) + and then Nkind (Unit (Comp_Unit)) in N_Proper_Body and then not In_Extended_Main_Source_Unit (Comp_Unit) then Ignore_Comp_Units := True; diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index e29bca9..5078bc3 100644 --- a/gcc/ada/sem_aggr.adb +++ b/gcc/ada/sem_aggr.adb @@ -2427,8 +2427,8 @@ package body Sem_Aggr is Ancestor_Typ := Etype (Ancestor); Loc := Sloc (Ancestor); - -- In case of private types with unknown discriminants use the - -- underlying record view if it is available + -- For a private type with unknown discriminants, use the underlying + -- record view if it is available. if Has_Unknown_Discriminants (Ancestor_Typ) and then Present (Full_View (Ancestor_Typ)) -- 2.7.4