From 00447a62af3e0d56871c88c7921bd70399ede3a8 Mon Sep 17 00:00:00 2001 From: charlet Date: Mon, 29 Aug 2011 14:17:49 +0000 Subject: [PATCH] 2011-08-29 Robert Dewar * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor reformatting. 2011-08-29 Matthew Heaney * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all components of record type. 2011-08-29 Bob Duff * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated by the termination handler. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178241 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 15 +++++++++++++++ gcc/ada/a-cbhama.ads | 4 ++-- gcc/ada/a-cbhase.ads | 4 ++-- gcc/ada/gnat1drv.adb | 2 +- gcc/ada/s-parint.ads | 12 ++++++------ gcc/ada/s-tassta.adb | 9 ++++++++- gcc/ada/sem_ch3.adb | 33 ++++++++++++--------------------- gcc/ada/sem_util.adb | 5 ++--- 8 files changed, 48 insertions(+), 36 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6ebe68778a2..944519d4229 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,18 @@ +2011-08-29 Robert Dewar + + * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor + reformatting. + +2011-08-29 Matthew Heaney + + * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all + components of record type. + +2011-08-29 Bob Duff + + * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated + by the termination handler. + 2011-08-29 Yannick Moy * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes diff --git a/gcc/ada/a-cbhama.ads b/gcc/ada/a-cbhama.ads index 042cc0fa1df..0102e0221b1 100644 --- a/gcc/ada/a-cbhama.ads +++ b/gcc/ada/a-cbhama.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2010, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -320,7 +320,7 @@ private type Cursor is record Container : Map_Access; - Node : Count_Type; + Node : Count_Type := 0; end record; procedure Read diff --git a/gcc/ada/a-cbhase.ads b/gcc/ada/a-cbhase.ads index 9618ff3087e..4f3ea3107f9 100644 --- a/gcc/ada/a-cbhase.ads +++ b/gcc/ada/a-cbhase.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2010, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -431,7 +431,7 @@ private type Cursor is record Container : Set_Access; - Node : Count_Type; + Node : Count_Type := 0; end record; procedure Write diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb index ffb3e24cdef..f371afafa45 100644 --- a/gcc/ada/gnat1drv.adb +++ b/gcc/ada/gnat1drv.adb @@ -479,7 +479,7 @@ procedure Gnat1drv is -- We would prefer to suppress the expansion of tagged types and -- dispatching calls, so that one day GNATprove can handle them -- directly. Unfortunately, this is causing problems in some cases, - -- so keep this expansion for the time being. + -- so keep this expansion for the time being. To be investigated ??? Tagged_Type_Expansion := True; end if; diff --git a/gcc/ada/s-parint.ads b/gcc/ada/s-parint.ads index 457be066012..a6257cc72b3 100644 --- a/gcc/ada/s-parint.ads +++ b/gcc/ada/s-parint.ads @@ -38,7 +38,6 @@ with Interfaces; with System.RPC; package System.Partition_Interface is - pragma Elaborate_Body; type DSA_Implementation_Name is (No_DSA, GARLIC_DSA, PolyORB_DSA); @@ -46,13 +45,14 @@ package System.Partition_Interface is -- Identification of this DSA implementation variant PCS_Version : constant := 1; - -- Version of the PCS API (for Exp_Dist consistency check). + -- Version of the PCS API (for Exp_Dist consistency check) + -- -- This version number is matched against corresponding element of - -- Exp_Dist.PCS_Version_Number to ensure that the versions of Exp_Dist and - -- the PCS are consistent. + -- Exp_Dist.PCS_Version_Number to ensure that the versions of Exp_Dist + -- and the PCS are consistent. - -- RCI receiving stubs contain a table of descriptors for - -- all user subprograms exported by the unit. + -- RCI receiving stubs contain a table of descriptors for all user + -- subprograms exported by the unit. type Subprogram_Id is new Natural; First_RCI_Subprogram_Id : constant := 2; diff --git a/gcc/ada/s-tassta.adb b/gcc/ada/s-tassta.adb index 8795ce7727d..88b43ed35ac 100644 --- a/gcc/ada/s-tassta.adb +++ b/gcc/ada/s-tassta.adb @@ -1324,7 +1324,14 @@ package body System.Tasking.Stages is -- Execute the task termination handler if we found it if TH /= null then - TH.all (Cause, Self_ID, EO); + begin + TH.all (Cause, Self_ID, EO); + + exception + when others => + -- RM-C.7.3 requires these exceptions to be ignored + null; + end; end if; if System.Stack_Usage.Is_Enabled then diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 0c2c043a545..5a3c57003e9 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -4791,28 +4791,22 @@ package body Sem_Ch3 is -- Process subtype indication if one is present if Present (Component_Typ) then - Element_Type := Process_Subtype (Component_Typ, P, Related_Id, 'C'); -- In formal verification mode, create an explicit declaration for -- the Itype created for a component type. Having a declaration for -- all type entities facilitates the task of the formal verification - -- back-end. Notice that this declaration is not attached to the - -- tree. + -- back-end. Note: this declaration is not attached to the tree. - if ALFA_Mode - and then Is_Itype (Element_Type) - then + if ALFA_Mode and then Is_Itype (Element_Type) then declare Loc : constant Source_Ptr := Sloc (Def); Decl : Entity_Id; - begin Decl := Make_Subtype_Declaration (Loc, Defining_Identifier => Element_Type, Subtype_Indication => Relocate_Node (Component_Typ)); - Analyze (Decl); end; end if; @@ -4906,23 +4900,20 @@ package body Sem_Ch3 is -- In ALFA mode, generate a declaration for Itype T, so that the -- formal verification back-end can use it. - if ALFA_Mode - and then Is_Itype (T) - then + if ALFA_Mode and then Is_Itype (T) then declare Loc : constant Source_Ptr := Sloc (Def); Decl : Node_Id; - begin - Decl := Make_Full_Type_Declaration (Loc, - Defining_Identifier => T, - Type_Definition => - Make_Constrained_Array_Definition (Loc, - Discrete_Subtype_Definitions => - New_Copy_List (Discrete_Subtype_Definitions (Def)), - Component_Definition => - Relocate_Node (Component_Definition (Def)))); - + Decl := + Make_Full_Type_Declaration (Loc, + Defining_Identifier => T, + Type_Definition => + Make_Constrained_Array_Definition (Loc, + Discrete_Subtype_Definitions => + New_Copy_List (Discrete_Subtype_Definitions (Def)), + Component_Definition => + Relocate_Node (Component_Definition (Def)))); Analyze (Decl); end; end if; diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index b4dac3cfc5e..b51719d0af2 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -8515,9 +8515,8 @@ package body Sem_Util is begin pragma Assert (Is_Itype (Id)); return Present (Parent (Id)) - and then Nkind_In (Parent (Id), - N_Full_Type_Declaration, - N_Subtype_Declaration) + and then Nkind_In (Parent (Id), N_Full_Type_Declaration, + N_Subtype_Declaration) and then Defining_Entity (Parent (Id)) = Id; end Itype_Has_Declaration; -- 2.11.0