From 5fdc49eca660d130ec4815eb7a804aa7fd89773d Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Thu, 9 Sep 2010 15:53:19 +0200 Subject: [PATCH] [multiple changes] 2010-09-09 Robert Dewar * sinput-p.ads: Minor comment update. 2010-09-09 Arnaud Charlet * s-tpobop.adb, s-taenca.adb (Wait_For_Completion_With_Timeout): Reset Entry_Call.State if needed so that the call is marked as cancelled by Check_Pending_Actions_For_Entry_Call. (Timed_Protected_Entry_Call): Adjust calls to Defer/Under_Abort, since this procedure may be called from a controlled operation (Initialize/Finalize). 2010-09-09 Vadim Godunko * impunit.adb: Correct spelling of package's name in the comment. From-SVN: r164101 --- gcc/ada/ChangeLog | 17 +++++++++++++++++ gcc/ada/impunit.adb | 4 ++-- gcc/ada/s-taenca.adb | 9 ++++++++- gcc/ada/s-tpobop.adb | 6 +++--- gcc/ada/sinput-p.ads | 4 ++-- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6fb4d82..59562e6 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,22 @@ 2010-09-09 Robert Dewar + * sinput-p.ads: Minor comment update. + +2010-09-09 Arnaud Charlet + + * s-tpobop.adb, s-taenca.adb (Wait_For_Completion_With_Timeout): Reset + Entry_Call.State if needed so that the call is marked as cancelled by + Check_Pending_Actions_For_Entry_Call. + (Timed_Protected_Entry_Call): Adjust calls to Defer/Under_Abort, since + this procedure may be called from a controlled operation + (Initialize/Finalize). + +2010-09-09 Vadim Godunko + + * impunit.adb: Correct spelling of package's name in the comment. + +2010-09-09 Robert Dewar + * gnatcmd.adb, gnatlink.adb, sem_ch12.adb, sem_eval.adb, sinput-p.adb: Minor reformatting diff --git a/gcc/ada/impunit.adb b/gcc/ada/impunit.adb index 24b94af..fe89924 100644 --- a/gcc/ada/impunit.adb +++ b/gcc/ada/impunit.adb @@ -55,7 +55,7 @@ package body Impunit is Non_Imp_File_Names_95 : constant File_List := ( ------------------------------------------------------ - -- Ada Hierarchy Units from Ada-83 Reference Manual -- + -- Ada Hierarchy Units from Ada-95 Reference Manual -- ------------------------------------------------------ "a-astaco", -- Ada.Asynchronous_Task_Control @@ -395,7 +395,7 @@ package body Impunit is "a-envvar", -- Ada.Environment_Variables "a-exetim", -- Ada.Execution_Time "a-extiti", -- Ada.Execution_Time.Timers - "a-izteio", -- Ada.Integer_Wide_Wide_TextIO; + "a-izteio", -- Ada.Integer_Wide_Wide_Text_IO "a-rttiev", -- Ada.Real_Time.Timing_Events "a-ngcoar", -- Ada.Numerics.Generic_Complex_Arrays "a-ngrear", -- Ada.Numerics.Generic_Real_Arrays diff --git a/gcc/ada/s-taenca.adb b/gcc/ada/s-taenca.adb index fba7691..14812a4 100644 --- a/gcc/ada/s-taenca.adb +++ b/gcc/ada/s-taenca.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, 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- -- @@ -590,6 +590,13 @@ package body System.Tasking.Entry_Calls is Entry_Call.Cancellation_Attempted := True; + -- Reset Entry_Call.State so that the call is marked as cancelled + -- by Check_Pending_Actions_For_Entry_Call below. + + if Entry_Call.State < Was_Abortable then + Entry_Call.State := Now_Abortable; + end if; + if Self_Id.Pending_ATC_Level >= Entry_Call.Level then Self_Id.Pending_ATC_Level := Entry_Call.Level - 1; end if; diff --git a/gcc/ada/s-tpobop.adb b/gcc/ada/s-tpobop.adb index f9ca610..0890181 100644 --- a/gcc/ada/s-tpobop.adb +++ b/gcc/ada/s-tpobop.adb @@ -958,7 +958,7 @@ package body System.Tasking.Protected_Objects.Operations is Send_Trace_Info (POT_Call, Entry_Index (E), Timeout); end if; - Initialization.Defer_Abort (Self_Id); + Initialization.Defer_Abort_Nestable (Self_Id); Lock_Entries (Object, Ceiling_Violation); if Ceiling_Violation then @@ -1009,7 +1009,7 @@ package body System.Tasking.Protected_Objects.Operations is end if; Entry_Call_Successful := Entry_Call.State = Done; - Initialization.Undefer_Abort (Self_Id); + Initialization.Undefer_Abort_Nestable (Self_Id); Entry_Calls.Check_Exception (Self_Id, Entry_Call); return; end if; @@ -1025,7 +1025,7 @@ package body System.Tasking.Protected_Objects.Operations is -- ??? Do we need to yield in case Yielded is False - Initialization.Undefer_Abort (Self_Id); + Initialization.Undefer_Abort_Nestable (Self_Id); Entry_Call_Successful := Entry_Call.State = Done; Entry_Calls.Check_Exception (Self_Id, Entry_Call); end Timed_Protected_Entry_Call; diff --git a/gcc/ada/sinput-p.ads b/gcc/ada/sinput-p.ads index 8f925bb..112a6f7 100644 --- a/gcc/ada/sinput-p.ads +++ b/gcc/ada/sinput-p.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, 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- -- @@ -54,7 +54,7 @@ package Sinput.P is -- the file cannot possibly be a legal subunit. This function does NOT do a -- complete parse of the file, or build a tree. It is used in gnatmake and -- gprbuild to decide if a body without a spec in a project file needs to - -- be compiled or not. + -- be compiled or not. Returns False if X = No_Source_File. type Saved_Project_Scan_State is limited private; -- Used to save project scan state in following two routines -- 2.7.4