[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 18 Mar 2005 11:55:47 +0000 (12:55 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 18 Mar 2005 11:55:47 +0000 (12:55 +0100)
2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>

* gnat_ugn.texi: Document gnatmem restriction

2005-03-17  Thomas Quinot  <quinot@adacore.com>

* snames.adb: Document new TSS names introduced by exp_dist/exp_tss
cleanup

2005-03-17  Robert Dewar  <dewar@adacore.com>

* s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting

* casing.adb: Comment improvements

2005-03-17  Pascal Obry  <obry@adacore.com>

* g-expect.adb: Minor reformatting.

From-SVN: r96678

15 files changed:
gcc/ada/a-interr.adb
gcc/ada/a-interr.ads
gcc/ada/casing.adb
gcc/ada/g-expect.adb
gcc/ada/gnat_ugn.texi
gcc/ada/prj.adb
gcc/ada/prj.ads
gcc/ada/s-interr-dummy.adb
gcc/ada/s-interr-sigaction.adb
gcc/ada/s-interr-vms.adb
gcc/ada/s-interr-vxworks.adb
gcc/ada/s-interr.adb
gcc/ada/s-interr.ads
gcc/ada/sem_ch3.adb
gcc/ada/snames.adb

index 72e42a8f8a776d4d79801622b6e1bd3f47f29322..a603a57cfde348de1b5b54df281ef426ed395d99 100644 (file)
@@ -7,7 +7,7 @@
 --                                  B o d y                                 --
 --                                                                          --
 --             Copyright (C) 1991-1994, Florida State University            --
---             Copyright (C) 1995-2003, Ada Core Technologies               --
+--                      Copyright (C) 1995-2005 AdaCore                     --
 --                                                                          --
 -- 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- --
@@ -73,8 +73,7 @@ package body Ada.Interrupts is
    ---------------------
 
    function Current_Handler
-     (Interrupt : Interrupt_ID)
-      return      Parameterless_Handler
+     (Interrupt : Interrupt_ID) return Parameterless_Handler
    is
    begin
       return To_Ada (SI.Current_Handler (SI.Interrupt_ID (Interrupt)));
@@ -84,7 +83,7 @@ package body Ada.Interrupts is
    -- Detach_Handler --
    --------------------
 
-   procedure Detach_Handler (Interrupt : in Interrupt_ID) is
+   procedure Detach_Handler (Interrupt : Interrupt_ID) is
    begin
       SI.Detach_Handler (SI.Interrupt_ID (Interrupt), False);
    end Detach_Handler;
index 0475deec568db1626ecf20bf2255540af0538c9d..e857069b9e331e4aedc2d886e289031487b4cd5b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2001 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005 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 --
@@ -49,8 +49,7 @@ package Ada.Interrupts is
    function Is_Attached (Interrupt : Interrupt_ID) return Boolean;
 
    function Current_Handler
-     (Interrupt : Interrupt_ID)
-      return      Parameterless_Handler;
+     (Interrupt : Interrupt_ID) return Parameterless_Handler;
 
    procedure Attach_Handler
      (New_Handler : Parameterless_Handler;
index e2f9a485e5f5970ae6b6eb6d5de9399fce433188..33ed33889f5673b9bcbd3dab222642dc880589eb 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2001 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005 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- --
@@ -140,6 +140,17 @@ package body Casing is
       Ptr := 1;
 
       while Ptr <= Name_Len loop
+
+         --  Wide character. Note that we do nothing with casing in this case.
+         --  In Ada 2005 mode, required folding of lower case letters happened
+         --  as the identifier was scanned, and we do not attempt any further
+         --  messing with case (note that in any case we do not know how to
+         --  fold upper case to lower case in wide character mode). We also
+         --  do not bother with recognizing punctuation as equivalent to an
+         --  underscore. There is nothing functional at this stage in doing
+         --  the requested casing operation, beyond folding to upper case
+         --  when it is mandatory, which does not involve underscores.
+
          if Name_Buffer (Ptr) = ASCII.ESC
            or else Name_Buffer (Ptr) = '['
            or else (Upper_Half_Encoding
@@ -148,12 +159,16 @@ package body Casing is
             Skip_Wide (Name_Buffer, Ptr);
             After_Und := False;
 
+         --  Underscore, or non-identifer character (error case)
+
          elsif Name_Buffer (Ptr) = '_'
             or else not Identifier_Char (Name_Buffer (Ptr))
          then
             After_Und := True;
             Ptr := Ptr + 1;
 
+         --  Lower case letter
+
          elsif Is_Lower_Case_Letter (Name_Buffer (Ptr)) then
             if Actual_Casing = All_Upper_Case
               or else (After_Und and then Actual_Casing = Mixed_Case)
@@ -164,6 +179,8 @@ package body Casing is
             After_Und := False;
             Ptr := Ptr + 1;
 
+         --  Upper case letter
+
          elsif Is_Upper_Case_Letter (Name_Buffer (Ptr)) then
             if Actual_Casing = All_Lower_Case
               or else (not After_Und and then Actual_Casing = Mixed_Case)
@@ -174,7 +191,9 @@ package body Casing is
             After_Und := False;
             Ptr := Ptr + 1;
 
-         else  --  all other characters
+         --  Other identifier character (must be digit)
+
+         else
             After_Und := False;
             Ptr := Ptr + 1;
          end if;
index 2571a440d652cf83432ca651c53777c46cb983d2..2eed9164b204ae9cf1e4b010bc341dad232b5bcd 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
-with System;        use System;
-with Ada.Calendar;  use Ada.Calendar;
+with System;       use System;
+with Ada.Calendar; use Ada.Calendar;
 
 with GNAT.IO;
-with GNAT.OS_Lib;   use GNAT.OS_Lib;
-with GNAT.Regpat;   use GNAT.Regpat;
+with GNAT.OS_Lib;  use GNAT.OS_Lib;
+with GNAT.Regpat;  use GNAT.Regpat;
 
 with Unchecked_Deallocation;
 
@@ -762,9 +762,7 @@ package body GNAT.Expect is
    ------------------
 
    function Get_Error_Fd
-     (Descriptor : Process_Descriptor)
-      return       GNAT.OS_Lib.File_Descriptor
-   is
+     (Descriptor : Process_Descriptor) return GNAT.OS_Lib.File_Descriptor is
    begin
       return Descriptor.Error_Fd;
    end Get_Error_Fd;
@@ -774,9 +772,7 @@ package body GNAT.Expect is
    ------------------
 
    function Get_Input_Fd
-     (Descriptor : Process_Descriptor)
-      return       GNAT.OS_Lib.File_Descriptor
-   is
+     (Descriptor : Process_Descriptor) return GNAT.OS_Lib.File_Descriptor is
    begin
       return Descriptor.Input_Fd;
    end Get_Input_Fd;
@@ -786,9 +782,7 @@ package body GNAT.Expect is
    -------------------
 
    function Get_Output_Fd
-     (Descriptor : Process_Descriptor)
-      return       GNAT.OS_Lib.File_Descriptor
-   is
+     (Descriptor : Process_Descriptor) return GNAT.OS_Lib.File_Descriptor is
    begin
       return Descriptor.Output_Fd;
    end Get_Output_Fd;
@@ -798,9 +792,7 @@ package body GNAT.Expect is
    -------------
 
    function Get_Pid
-     (Descriptor : Process_Descriptor)
-      return       Process_Id
-   is
+     (Descriptor : Process_Descriptor) return Process_Id is
    begin
       return Descriptor.Pid;
    end Get_Pid;
@@ -847,7 +839,7 @@ package body GNAT.Expect is
 
       Arg        : String_Access;
       Arg_List   : String_List (1 .. Args'Length + 2);
-      C_Arg_List :  aliased array (1 .. Args'Length + 2) of System.Address;
+      C_Arg_List : aliased array (1 .. Args'Length + 2) of System.Address;
 
       Command_With_Path : String_Access;
 
@@ -1004,9 +996,9 @@ package body GNAT.Expect is
    ----------
 
    procedure Send
-     (Descriptor : in out Process_Descriptor;
-      Str        : String;
-      Add_LF     : Boolean := True;
+     (Descriptor   : in out Process_Descriptor;
+      Str          : String;
+      Add_LF       : Boolean := True;
       Empty_Buffer : Boolean := False)
    is
       Full_Str    : constant String := Str & ASCII.LF;
index d04028b3c09ad6bc426e4d62f646ec39e5a3b2b6..246c9103112ef6b7231eaef18bbb4ce54ad1ee8d 100644 (file)
@@ -18140,7 +18140,7 @@ allocation and deallocation routines that record call information. This
 allows to obtain accurate dynamic memory usage history at a minimal cost to
 the execution speed. Note however, that @code{gnatmem} is not supported on
 all platforms (currently, it is supported on AIX, HP-UX, GNU/Linux x86,
-Solaris (sparc and x86) and Windows NT/2000/XP (x86).
+32-bit Solaris (sparc and x86) and Windows NT/2000/XP (x86).
 
 @noindent
 The @code{gnatmem} command has the form
index 8158de78dc50f8a51a86cec6e44f4f7c9b844948..37237d36b27a27212c637ddb6f064c2741e038b7 100644 (file)
@@ -650,7 +650,7 @@ package body Prj is
    end Set;
 
    procedure Set
-     (Language_Processing : in Language_Processing_Data;
+     (Language_Processing : Language_Processing_Data;
       For_Language        : Language_Index;
       In_Project          : in out Project_Data;
       In_Tree             : Project_Tree_Ref)
@@ -672,8 +672,7 @@ package body Prj is
 
             begin
                while Supp_Index /= No_Supp_Language_Index loop
-                  Supp := In_Tree.Supp_Languages.Table
-                                                                (Supp_Index);
+                  Supp := In_Tree.Supp_Languages.Table (Supp_Index);
 
                   if Supp.Index = For_Language then
                      In_Tree.Supp_Languages.Table
@@ -755,8 +754,8 @@ package body Prj is
    -- Standard_Naming_Data --
    --------------------------
 
-   function Standard_Naming_Data (Tree : Project_Tree_Ref := No_Project_Tree)
-                                  return Naming_Data
+   function Standard_Naming_Data
+     (Tree : Project_Tree_Ref := No_Project_Tree) return Naming_Data
    is
    begin
       if Tree = No_Project_Tree then
@@ -793,8 +792,7 @@ package body Prj is
 
             begin
                while Supp_Index /= No_Supp_Language_Index loop
-                  Supp := In_Tree.Supp_Suffixes.Table
-                                                             (Supp_Index);
+                  Supp := In_Tree.Supp_Suffixes.Table (Supp_Index);
 
                   if Supp.Index = Language then
                      return Supp.Suffix;
index a1b685e153d91722215e2e704918000c5b55c5f8..aa58c2f5eb24d6d77c36fbbca6db97e2366c61ed 100644 (file)
@@ -513,8 +513,8 @@ package Prj is
 
    end record;
 
-   function Standard_Naming_Data (Tree : Project_Tree_Ref := No_Project_Tree)
-                                  return Naming_Data;
+   function Standard_Naming_Data
+     (Tree : Project_Tree_Ref := No_Project_Tree) return Naming_Data;
    pragma Inline (Standard_Naming_Data);
    --  The standard GNAT naming scheme when Tree is No_Project_Tree.
    --  Otherwise, return the default naming scheme for the project tree Tree,
index 0702981ade328301d5e6d5b92e648e554572ce7d..01c3ba19b0fa5a1d59af8f47a3213a95593c5673 100644 (file)
@@ -7,7 +7,7 @@
 --                                  B o d y                                 --
 --                                                                          --
 --             Copyright (C) 1991-1994, Florida State University            --
---             Copyright (C) 1995-2004, Ada Core Technologies               --
+--                      Copyright (C) 1995-2005 AdaCore                     --
 --                                                                          --
 -- 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- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
---  This is an OS/2 version of this package.
-
---  This version is a stub, for systems that
---  do not support interrupts (or signals).
+--  This version is for systems that do not support interrupts (or signals)
 
 with Ada.Exceptions;
 
@@ -93,8 +90,7 @@ package body System.Interrupts is
    ---------------------
 
    function Current_Handler
-     (Interrupt : Interrupt_ID)
-      return      Parameterless_Handler
+     (Interrupt : Interrupt_ID) return Parameterless_Handler
    is
    begin
       Unimplemented;
@@ -155,7 +151,6 @@ package body System.Interrupts is
       return   Boolean
    is
       pragma Warnings (Off, Object);
-
    begin
       Unimplemented;
       return True;
@@ -166,7 +161,6 @@ package body System.Interrupts is
       return   Boolean
    is
       pragma Warnings (Off, Object);
-
    begin
       Unimplemented;
       return True;
index 4a7610c8018bcccf0660e0438bff81e97c16c4cc..d8e7f9ef3bfb9f161abaae94ce700308af31775d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---              Copyright (C) 1998-2004 Free Software Fundation             --
+--              Copyright (C) 1998-2005 Free Software Fundation             --
 --                                                                          --
 -- 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- --
@@ -31,7 +31,7 @@
 --                                                                          --
 ------------------------------------------------------------------------------
 
---  This is the IRIX & NT version of this package.
+--  This is the IRIX & NT version of this package
 
 with Ada.Task_Identification;
 --  used for Task_Id
@@ -120,15 +120,15 @@ package body System.Interrupts is
    --  that contain interrupt handlers.
 
    procedure Signal_Handler (Sig : Interrupt_ID);
-   --  This procedure is used to handle all the signals.
+   --  This procedure is used to handle all the signals
 
    --  Type and Head, Tail of the list containing Registered Interrupt
    --  Handlers. These definitions are used to register the handlers
    --  specified by the pragma Interrupt_Handler.
 
-   --
-   --  Handler Registration:
-   --
+   --------------------------
+   -- Handler Registration --
+   --------------------------
 
    type Registered_Handler;
    type R_Link is access all Registered_Handler;
@@ -362,15 +362,14 @@ package body System.Interrupts is
 
       if not Restoration and then not Static
 
-         --  Tries to overwrite a static Interrupt Handler with a
-         --  dynamic Handler
+         --  Tries to overwrite a static Interrupt Handler with dynamic handle
 
-        and then (Descriptors (Interrupt).Static
+        and then
+          (Descriptors (Interrupt).Static
 
-                     --  The new handler is not specified as an
-                     --  Interrupt Handler by a pragma.
+            --  New handler not specified as an Interrupt Handler by a pragma
 
-                     or else not Is_Registered (New_Handler))
+             or else not Is_Registered (New_Handler))
       then
          Raise_Exception (Program_Error'Identity,
            "Trying to overwrite a static Interrupt Handler with a " &
@@ -569,10 +568,10 @@ package body System.Interrupts is
       Descriptors (Interrupt).T := T;
       Descriptors (Interrupt).E := E;
 
-      --  Indicate the attachment of Interrupt Entry in ATCB.
-      --  This is need so that when an Interrupt Entry task terminates
-      --  the binding can be cleaned. The call to unbinding must be
-      --  make by the task before it terminates.
+      --  Indicate the attachment of Interrupt Entry in ATCB. This is needed so
+      --  that when an Interrupt Entry task terminates the binding can be
+      --  cleaned up. The call to unbinding must be make by the task before it
+      --  terminates.
 
       T.Interrupt_Entry := True;
    end Bind_Interrupt_To_Entry;
@@ -597,7 +596,7 @@ package body System.Interrupts is
          end if;
       end loop;
 
-      --  Indicate in ATCB that no Interrupt Entries are attached.
+      --  Indicate in ATCB that no Interrupt Entries are attached
 
       T.Interrupt_Entry := True;
    end Detach_Interrupt_Entries;
@@ -674,8 +673,8 @@ package body System.Interrupts is
 
          Initialization.Undefer_Abort (Self_Id);
 
-         --  Undefer abort here to allow a window for this task
-         --  to be aborted  at the time of system shutdown.
+         --  Undefer abort here to allow a window for this task to be aborted
+         --  at the time of system shutdown.
 
       end loop;
    end Server_Task;
index 3d4b7fc2e9dffd5c04ec98aa6962cb81a19c4c57..01b42b697172d12c09a99741c77f48283873e78c 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---         Copyright (C) 1992-2004, Free Software Foundation, Inc.          --
+--         Copyright (C) 1992-2005, 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- --
@@ -31,7 +31,7 @@
 --                                                                          --
 ------------------------------------------------------------------------------
 
---  This is an OpenVMS/Alpha version of this package.
+--  This is an OpenVMS/Alpha version of this package
 
 --  Invariants:
 
@@ -140,9 +140,8 @@ package body System.Interrupts is
    -- Local Tasks --
    -----------------
 
-   --  WARNING: System.Tasking.Stages performs calls to this task
-   --  with low-level constructs. Do not change this spec without synchro-
-   --  nizing it.
+   --  WARNING: System.Tasking.Stages performs calls to this task with
+   --  low-level constructs. Do not change this spec without synchronizing it.
 
    task Interrupt_Manager is
       entry Detach_Interrupt_Entries (T : Task_Id);
@@ -183,10 +182,10 @@ package body System.Interrupts is
 
    task type Server_Task (Interrupt : Interrupt_ID) is
       pragma Priority (System.Interrupt_Priority'Last);
-      --  Note: the above pragma Priority is strictly speaking improper
-      --  since it is outside the range of allowed priorities, but the
-      --  compiler treats system units specially and does not apply
-      --  this range checking rule to system units.
+      --  Note: the above pragma Priority is strictly speaking improper since
+      --  it is outside the range of allowed priorities, but the compiler
+      --  treats system units specially and does not apply this range checking
+      --  rule to system units.
 
    end Server_Task;
 
@@ -210,9 +209,9 @@ package body System.Interrupts is
                     (others => (null, Static => False));
    pragma Volatile_Components (User_Handler);
    --  Holds the protected procedure handler (if any) and its Static
-   --  information  for each interrupt. A handler is a Static one if
-   --  it is specified through the pragma Attach_Handler.
-   --  Attach_Handler. Otherwise, not static)
+   --  information for each interrupt. A handler is a Static one if it is
+   --  specified through the pragma Attach_Handler. Attach_Handler. Otherwise,
+   --  not static)
 
    User_Entry : array (Interrupt_ID'Range) of Entry_Assoc :=
                   (others => (T => Null_Task, E => Null_Task_Entry));
@@ -221,7 +220,7 @@ package body System.Interrupts is
 
    Blocked : constant array (Interrupt_ID'Range) of Boolean :=
      (others => False);
---  ??? pragma Volatile_Components (Blocked);
+   --  ??? pragma Volatile_Components (Blocked);
    --  True iff the corresponding interrupt is blocked in the process level
 
    Ignored : array (Interrupt_ID'Range) of Boolean := (others => False);
@@ -238,13 +237,13 @@ package body System.Interrupts is
    Server_ID : array (Interrupt_ID'Range) of Task_Id :=
                  (others => Null_Task);
    pragma Atomic_Components (Server_ID);
-   --  Holds the Task_Id of the Server_Task for each interrupt.
-   --  Task_Id is needed to accomplish locking per Interrupt base. Also
-   --  is needed to decide whether to create a new Server_Task.
+   --  Holds the Task_Id of the Server_Task for each interrupt. Task_Id is
+   --  needed to accomplish locking per Interrupt base. Also is needed to
+   --  decide whether to create a new Server_Task.
 
    --  Type and Head, Tail of the list containing Registered Interrupt
-   --  Handlers. These definitions are used to register the handlers
-   --  specified by the pragma Interrupt_Handler.
+   --  Handlers. These definitions are used to register the handlers specified
+   --  by the pragma Interrupt_Handler.
 
    type Registered_Handler;
    type R_Link is access all Registered_Handler;
@@ -334,7 +333,6 @@ package body System.Interrupts is
       end loop;
 
       return False;
-
    end Is_Registered;
 
    -----------------
@@ -415,9 +413,9 @@ package body System.Interrupts is
            Interrupt_ID'Image (Interrupt) & " is reserved");
       end if;
 
-      --  ??? Since Parameterless_Handler is not Atomic, the
-      --  current implementation is wrong. We need a new service in
-      --  Interrupt_Manager to ensure atomicity.
+      --  ??? Since Parameterless_Handler is not Atomic, the current
+      --  implementation is wrong. We need a new service in Interrupt_Manager
+      --  to ensure atomicity.
 
       return User_Handler (Interrupt).H;
    end Current_Handler;
@@ -452,19 +450,20 @@ package body System.Interrupts is
    -- Exchange_Handler --
    ----------------------
 
-   --  Calling this procedure with New_Handler = null and Static = True
-   --  means we want to detach the current handler regardless of the
-   --  previous handler's binding status (ie. do not care if it is a
-   --  dynamic or static handler).
+   --  Calling this procedure with New_Handler = null and Static = True means
+   --  we want to detach the current handler regardless of the previous
+   --  handler's binding status (ie. do not care if it is dynamic or static
+   --  handler).
 
-   --  This option is needed so that during the finalization of a PO, we
-   --  can detach handlers attached through pragma Attach_Handler.
+   --  This option is needed so that during the finalization of a PO, we can
+   --  detach handlers attached through pragma Attach_Handler.
 
    procedure Exchange_Handler
      (Old_Handler : out Parameterless_Handler;
       New_Handler : Parameterless_Handler;
       Interrupt   : Interrupt_ID;
-      Static      : Boolean := False) is
+      Static      : Boolean := False)
+   is
    begin
       if Is_Reserved (Interrupt) then
          Raise_Exception (Program_Error'Identity, "Interrupt" &
@@ -1152,25 +1151,24 @@ package body System.Interrupts is
    end Install_Handlers;
 
 --  Elaboration code for package System.Interrupts
+
 begin
 
    --  Get Interrupt_Manager's ID so that Abort_Interrupt can be sent.
 
    Interrupt_Manager_ID := To_System (Interrupt_Manager'Identity);
 
-   --  During the elaboration of this package body we want RTS to
-   --  inherit the interrupt mask from the Environment Task.
+   --  During the elaboration of this package body we want RTS to inherit the
+   --  interrupt mask from the Environment Task.
 
-   --  The Environment Task should have gotten its mask from
-   --  the enclosing process during the RTS start up. (See
-   --  in s-inmaop.adb). Pass the Interrupt_Mask of the Environment
-   --  task to the Interrupt_Manager.
+   --  The Environment Task should have gotten its mask from the enclosing
+   --  process during the RTS start up. (See in s-inmaop.adb). Pass the
+   --  Interrupt_Mask of the Environment task to the Interrupt_Manager.
 
-   --  Note : At this point we know that all tasks (including
-   --  RTS internal servers) are masked for non-reserved signals
-   --  (see s-taprop.adb). Only the Interrupt_Manager will have
-   --  masks set up differently inheriting the original Environment
-   --  Task's mask.
+   --  Note : At this point we know that all tasks (including RTS internal
+   --  servers) are masked for non-reserved signals (see s-taprop.adb). Only
+   --  the Interrupt_Manager will have masks set up differently inheriting the
+   --  original Environment Task's mask.
 
    Interrupt_Manager.Initialize (IMOP.Environment_Mask);
 end System.Interrupts;
index d0eee62dda37b229820aa266886aa110268b6b08..c9f993b376d457d6c1affd85787a492a4758c724 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---         Copyright (C) 1992-2004, Free Software Foundation, Inc.          --
+--         Copyright (C) 1992-2005, 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- --
 
 --  Invariants:
 
---  All user-handleable signals are masked at all times in all
---  tasks/threads except possibly for the Interrupt_Manager task.
+--  All user-handleable signals are masked at all times in all tasks/threads
+--  except possibly for the Interrupt_Manager task.
 
---  When a user task wants to have the effect of masking/unmasking an
---  signal, it must call Block_Interrupt/Unblock_Interrupt, which
---  will have the effect of unmasking/masking the signal in the
---  Interrupt_Manager task.  These comments do not apply to vectored
---  hardware interrupts, which may be masked or unmasked using routined
---  interfaced to the relevant VxWorks system calls.
+--  When a user task wants to have the effect of masking/unmasking an signal,
+--  it must call Block_Interrupt/Unblock_Interrupt, which will have the effect
+--  of unmasking/masking the signal in the Interrupt_Manager task. These
+--  comments do not apply to vectored hardware interrupts, which may be masked
+--  or unmasked using routined interfaced to the relevant VxWorks system
+--  calls.
 
---  Once we associate a Signal_Server_Task with an signal, the task never
---  goes away, and we never remove the association. On the other hand, it
---  is more convenient to terminate an associated Interrupt_Server_Task
---  for a vectored hardware interrupt (since we use a binary semaphore
---  for synchronization with the umbrella handler).
+--  Once we associate a Signal_Server_Task with an signal, the task never goes
+--  away, and we never remove the association. On the other hand, it is more
+--  convenient to terminate an associated Interrupt_Server_Task for a vectored
+--  hardware interrupt (since we use a binary semaphore for synchronization
+--  with the umbrella handler).
 
 --  There is no more than one signal per Signal_Server_Task and no more than
---  one Signal_Server_Task per signal.  The same relation holds for hardware
---  interrupts and Interrupt_Server_Task's at any given time.  That is,
---  only one non-terminated Interrupt_Server_Task exists for a give
---  interrupt at any time.
+--  one Signal_Server_Task per signal. The same relation holds for hardware
+--  interrupts and Interrupt_Server_Task's at any given time. That is, only
+--  one non-terminated Interrupt_Server_Task exists for a give interrupt at
+--  any time.
 
 --  Within this package, the lock L is used to protect the various status
 --  tables. If there is a Server_Task associated with a signal or interrupt,
@@ -124,9 +124,8 @@ package body System.Interrupts is
    -- Local Tasks --
    -----------------
 
-   --  WARNING: System.Tasking.Stages performs calls to this task
-   --  with low-level constructs. Do not change this spec without synchro-
-   --  nizing it.
+   --  WARNING: System.Tasking.Stages performs calls to this task with
+   --  low-level constructs. Do not change this spec without synchronizing it.
 
    task Interrupt_Manager is
       entry Detach_Interrupt_Entries (T : Task_Id);
@@ -331,7 +330,8 @@ package body System.Interrupts is
    ---------------------
 
    function Current_Handler
-     (Interrupt : Interrupt_ID) return Parameterless_Handler is
+     (Interrupt : Interrupt_ID) return Parameterless_Handler
+   is
    begin
       Check_Reserved_Interrupt (Interrupt);
 
@@ -386,7 +386,8 @@ package body System.Interrupts is
      (Old_Handler : out Parameterless_Handler;
       New_Handler : Parameterless_Handler;
       Interrupt   : Interrupt_ID;
-      Static      : Boolean := False) is
+      Static      : Boolean := False)
+   is
    begin
       Check_Reserved_Interrupt (Interrupt);
       Interrupt_Manager.Exchange_Handler
@@ -421,7 +422,7 @@ package body System.Interrupts is
    -- Finalize_Interrupt_Servers --
    --------------------------------
 
-   --  Restore default handlers for interrupt servers.
+   --  Restore default handlers for interrupt servers
 
    --  This is called by the Interrupt_Manager task when it receives the abort
    --  signal during program finalization.
@@ -456,7 +457,6 @@ package body System.Interrupts is
       return   Boolean
    is
       pragma Unreferenced (Object);
-
    begin
       return True;
    end Has_Interrupt_Or_Attach_Handler;
@@ -466,7 +466,6 @@ package body System.Interrupts is
       return   Boolean
    is
       pragma Unreferenced (Object);
-
    begin
       return True;
    end Has_Interrupt_Or_Attach_Handler;
@@ -500,9 +499,11 @@ package body System.Interrupts is
 
    procedure Install_Handlers
      (Object       : access Static_Interrupt_Protection;
-      New_Handlers : New_Handler_Array) is
+      New_Handlers : New_Handler_Array)
+   is
    begin
       for N in New_Handlers'Range loop
+
          --  We need a lock around this ???
 
          Object.Previous_Handlers (N).Interrupt := New_Handlers (N).Interrupt;
@@ -687,6 +688,7 @@ package body System.Interrupts is
 
    procedure Register_Interrupt_Handler (Handler_Addr : System.Address) is
       New_Node_Ptr : R_Link;
+
    begin
       --  This routine registers a handler as usable for dynamic
       --  interrupt handler association. Routines attaching and detaching
@@ -727,7 +729,8 @@ package body System.Interrupts is
    ------------------
 
    function Unblocked_By
-     (Interrupt : Interrupt_ID) return System.Tasking.Task_Id is
+     (Interrupt : Interrupt_ID) return System.Tasking.Task_Id
+   is
    begin
       Unimplemented ("Unblocked_By");
       return Null_Task;
@@ -836,8 +839,9 @@ package body System.Interrupts is
          --  status of the Current_Handler.
 
          if not Static and then User_Handler (Interrupt).Static then
-            --  Trying to detach a static Interrupt Handler.
-            --  raise Program_Error.
+
+            --  Trying to detach a static Interrupt Handler. raise
+            --  Program_Error.
 
             Raise_Exception (Program_Error'Identity,
               "Trying to detach a static Interrupt Handler");
@@ -864,9 +868,11 @@ package body System.Interrupts is
          New_Handler : Parameterless_Handler;
          Interrupt   : Interrupt_ID;
          Static      : Boolean;
-         Restoration : Boolean := False) is
+         Restoration : Boolean := False)
+      is
       begin
          if User_Entry (Interrupt).T /= Null_Task then
+
             --  If an interrupt entry is already installed, raise
             --  Program_Error. (propagate it to the caller).
 
@@ -909,7 +915,7 @@ package body System.Interrupts is
 
          if New_Handler = null then
 
-            --  The null handler means we are detaching the handler.
+            --  The null handler means we are detaching the handler
 
             User_Handler (Interrupt).Static := False;
 
@@ -935,11 +941,13 @@ package body System.Interrupts is
          end if;
 
          if (New_Handler = null) and then Old_Handler /= null then
+
             --  Restore default handler
 
             Unbind_Handler (Interrupt);
 
          elsif Old_Handler = null then
+
             --  Save default handler
 
             Bind_Handler (Interrupt);
@@ -1046,7 +1054,7 @@ package body System.Interrupts is
                      end if;
                   end loop;
 
-                  --  Indicate in ATCB that no interrupt entries are attached.
+                  --  Indicate in ATCB that no interrupt entries are attached
 
                   T.Interrupt_Entry := False;
                end Detach_Interrupt_Entries;
@@ -1140,7 +1148,7 @@ package body System.Interrupts is
    end Interrupt_Server_Task;
 
 begin
-   --  Get Interrupt_Manager's ID so that Abort_Interrupt can be sent.
+   --  Get Interrupt_Manager's ID so that Abort_Interrupt can be sent
 
    Interrupt_Manager_ID := To_System (Interrupt_Manager'Identity);
 end System.Interrupts;
index 6844e883a529eace6dd8f54f51425f14d96eabd8..de93ca1ecc8a87380db1e43221f976590cdb3ad2 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---         Copyright (C) 1992-2004, Free Software Foundation, Inc.          --
+--         Copyright (C) 1992-2005, 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- --
@@ -157,20 +157,20 @@ package body System.Interrupts is
       entry Initialize (Mask : IMNG.Interrupt_Mask);
 
       entry Attach_Handler
-        (New_Handler : in Parameterless_Handler;
-         Interrupt   : in Interrupt_ID;
-         Static      : in Boolean;
-         Restoration : in Boolean := False);
+        (New_Handler : Parameterless_Handler;
+         Interrupt   : Interrupt_ID;
+         Static      : Boolean;
+         Restoration : Boolean := False);
 
       entry Exchange_Handler
         (Old_Handler : out Parameterless_Handler;
-         New_Handler : in Parameterless_Handler;
-         Interrupt   : in Interrupt_ID;
-         Static      : in Boolean);
+         New_Handler : Parameterless_Handler;
+         Interrupt   : Interrupt_ID;
+         Static      : Boolean);
 
       entry Detach_Handler
-        (Interrupt   : in Interrupt_ID;
-         Static      : in Boolean);
+        (Interrupt   : Interrupt_ID;
+         Static      : Boolean);
 
       entry Bind_Interrupt_To_Entry
         (T         : Task_Id;
@@ -256,7 +256,7 @@ package body System.Interrupts is
    type R_Link is access all Registered_Handler;
 
    type Registered_Handler is record
-      H :    System.Address := System.Null_Address;
+      H    : System.Address := System.Null_Address;
       Next : R_Link := null;
    end record;
 
@@ -287,9 +287,9 @@ package body System.Interrupts is
    --  can detach handlers attached through pragma Attach_Handler.
 
    procedure Attach_Handler
-     (New_Handler : in Parameterless_Handler;
-      Interrupt   : in Interrupt_ID;
-      Static      : in Boolean := False)
+     (New_Handler : Parameterless_Handler;
+      Interrupt   : Interrupt_ID;
+      Static      : Boolean := False)
    is
    begin
       if Is_Reserved (Interrupt) then
@@ -352,9 +352,9 @@ package body System.Interrupts is
            Interrupt_ID'Image (Interrupt) & " is reserved");
       end if;
 
-      --  ??? Since Parameterless_Handler is not Atomic, the
-      --  current implementation is wrong. We need a new service in
-      --  Interrupt_Manager to ensure atomicity.
+      --  ??? Since Parameterless_Handler is not Atomic, the current
+      --  implementation is wrong. We need a new service in Interrupt_Manager
+      --  to ensure atomicity.
 
       return User_Handler (Interrupt).H;
    end Current_Handler;
@@ -632,15 +632,15 @@ package body System.Interrupts is
       New_Node_Ptr : R_Link;
 
    begin
-      --  This routine registers the Handler as usable for Dynamic
-      --  Interrupt Handler. Routines attaching and detaching Handler
-      --  dynamically should first consult if the Handler is rgistered.
-      --  A Program Error should be raised if it is not registered.
+      --  This routine registers the Handler as usable for Dynamic Interrupt
+      --  Handler. Routines attaching and detaching Handler dynamically should
+      --  first consult if the Handler is registered. A Program Error should
+      --  be raised if it is not registered.
 
-      --  The pragma Interrupt_Handler can only appear in the library
-      --  level PO definition and instantiation. Therefore, we do not need
-      --  to implement Unregistering operation. Neither we need to
-      --  protect the queue structure using a Lock.
+      --  The pragma Interrupt_Handler can only appear in the library level PO
+      --  definition and instantiation. Therefore, we do not need to implement
+      --  Unregistering operation. Neither we need to protect the queue
+      --  structure using a Lock.
 
       pragma Assert (Handler_Addr /= System.Null_Address);
 
@@ -1014,10 +1014,10 @@ package body System.Interrupts is
          begin
             select
                accept Attach_Handler
-                  (New_Handler : in Parameterless_Handler;
-                   Interrupt   : in Interrupt_ID;
-                   Static      : in Boolean;
-                   Restoration : in Boolean := False)
+                  (New_Handler : Parameterless_Handler;
+                   Interrupt   : Interrupt_ID;
+                   Static      : Boolean;
+                   Restoration : Boolean := False)
                do
                   Unprotected_Exchange_Handler
                     (Old_Handler, New_Handler, Interrupt, Static, Restoration);
@@ -1026,9 +1026,9 @@ package body System.Interrupts is
             or
                accept Exchange_Handler
                   (Old_Handler : out Parameterless_Handler;
-                   New_Handler : in Parameterless_Handler;
-                   Interrupt   : in Interrupt_ID;
-                   Static      : in Boolean)
+                   New_Handler : Parameterless_Handler;
+                   Interrupt   : Interrupt_ID;
+                   Static      : Boolean)
                do
                   Unprotected_Exchange_Handler
                     (Old_Handler, New_Handler, Interrupt, Static);
@@ -1036,8 +1036,8 @@ package body System.Interrupts is
 
             or
                accept Detach_Handler
-                 (Interrupt   : in Interrupt_ID;
-                  Static      : in Boolean)
+                 (Interrupt   : Interrupt_ID;
+                  Static      : Boolean)
                do
                   Unprotected_Detach_Handler (Interrupt, Static);
                end Detach_Handler;
index 2377249203a886ca1ec68eb39870a76aee8082ce..94f6dd3e533bd3c25d197943993d437b84fb7f6f 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  S p e c                                 --
 --                                                                          --
---          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005 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- --
@@ -39,7 +39,7 @@
 --  It is made a child of System to allow visibility of various
 --  runtime system internal data and operations.
 
---  See System.Interrupt_Management for core interrupt/signal interfaces.
+--  See System.Interrupt_Management for core interrupt/signal interfaces
 
 --  These two packages are separated in order to allow
 --  System.Interrupt_Management to be used without requiring the whole
@@ -95,8 +95,7 @@ package System.Interrupts is
    function Is_Handler_Attached (Interrupt : Interrupt_ID) return Boolean;
 
    function Current_Handler
-     (Interrupt : Interrupt_ID)
-      return Parameterless_Handler;
+     (Interrupt : Interrupt_ID) return Parameterless_Handler;
 
    --  Calling the following procedures with New_Handler = null
    --  and Static = true means that we want to modify the current handler
@@ -119,8 +118,7 @@ package System.Interrupts is
       Static    : Boolean := False);
 
    function Reference
-     (Interrupt : Interrupt_ID)
-     return       System.Address;
+     (Interrupt : Interrupt_ID) return System.Address;
 
    --------------------------------
    -- Interrupt Entries Services --
@@ -150,8 +148,7 @@ package System.Interrupts is
    procedure Unblock_Interrupt (Interrupt : Interrupt_ID);
 
    function Unblocked_By
-     (Interrupt   : Interrupt_ID)
-      return System.Tasking.Task_Id;
+     (Interrupt : Interrupt_ID) return System.Tasking.Task_Id;
    --  It returns the ID of the last Task which Unblocked this Interrupt.
    --  It returns Null_Task if no tasks have ever requested the
    --  Unblocking operation or the Interrupt is currently Blocked.
@@ -185,38 +182,36 @@ package System.Interrupts is
 
    --  There are two kinds of protected objects that deal with interrupts:
 
-   --  (1) Only Interrupt_Handler pragmas are used. We need to be able to
-   --  tell if an Interrupt_Handler applies to a given procedure, so
+   --  (1) Only Interrupt_Handler pragmas are used. We need to be able to tell
+   --  if an Interrupt_Handler applies to a given procedure, so
    --  Register_Interrupt_Handler has to be called for all the potential
-   --  handlers, it should be done by calling Register_Interrupt_Handler
-   --  with the handler code address. On finalization, which can happen only
-   --  has part of library level finalization since PO with
-   --  Interrupt_Handler pragmas can only be declared at library level,
-   --  nothing special needs to be done since the default handlers have been
-   --  restored as part of task completion which is done just before global
-   --  finalization.  Dynamic_Interrupt_Protection should be used in this
-   --  case.
+   --  handlers, it should be done by calling Register_Interrupt_Handler with
+   --  the handler code address. On finalization, which can happen only has
+   --  part of library level finalization since PO with Interrupt_Handler
+   --  pragmas can only be declared at library level, nothing special needs to
+   --  be done since the default handlers have been restored as part of task
+   --  completion which is done just before global finalization.
+   --  Dynamic_Interrupt_Protection should be used in this case.
 
    --  (2) Attach_Handler pragmas are used, and possibly Interrupt_Handler
-   --  pragma. We need to attach the handlers to the given interrupts when
-   --  the objet is elaborated. This should be done by constructing an array
-   --  of pairs (interrupt, handler) from the pragmas and calling
-   --  Install_Handlers with it (types to be used are New_Handler_Item and
-   --  New_Handler_Array). On finalization, we need to restore the handlers
-   --  that were installed before the elaboration of the PO, so we need to
-   --  store these previous handlers. This is also done by Install_Handlers,
-   --  the room for these informations is provided by adding a discriminant
-   --  which is the number of Attach_Handler pragmas and an array of this
-   --  size in the protection type, Static_Interrupt_Protection.
+   --  pragma. We need to attach the handlers to the given interrupts when the
+   --  objet is elaborated. This should be done by constructing an array of
+   --  pairs (interrupt, handler) from the pragmas and calling Install_Handlers
+   --  with it (types to be used are New_Handler_Item and New_Handler_Array).
+   --  On finalization, we need to restore the handlers that were installed
+   --  before the elaboration of the PO, so we need to store these previous
+   --  handlers. This is also done by Install_Handlers, the room for these
+   --  informations is provided by adding a discriminant which is the number
+   --  of Attach_Handler pragmas and an array of this size in the protection
+   --  type, Static_Interrupt_Protection.
 
    procedure Register_Interrupt_Handler
      (Handler_Addr : System.Address);
-   --  This routine should be called by the compiler to allow the
-   --  handler be used as an Interrupt Handler. That means call this
-   --  procedure for each pragma Interrup_Handler providing the
-   --  address of the handler (not including the pointer to the
-   --  actual PO, this way this routine is called only once for
-   --  each type definition of PO).
+   --  This routine should be called by the compiler to allow the handler be
+   --  used as an Interrupt Handler. That means call this procedure for each
+   --  pragma Interrup_Handler providing the address of the handler (not
+   --  including the pointer to the actual PO, this way this routine is called
+   --  only once for each type definition of PO).
 
    type Static_Handler_Index is range 0 .. Integer'Last;
    subtype Positive_Static_Handler_Index is
@@ -228,7 +223,7 @@ package System.Interrupts is
       Handler   : Parameterless_Handler;
       Static    : Boolean;
    end record;
-   --  Contains all the information needed to restore a previous handler.
+   --  Contains all the information needed to restore a previous handler
 
    type Previous_Handler_Array is array
      (Positive_Static_Handler_Index range <>) of Previous_Handler_Item;
@@ -237,7 +232,7 @@ package System.Interrupts is
       Interrupt : Interrupt_ID;
       Handler   : Parameterless_Handler;
    end record;
-   --  Contains all the information from an Attach_Handler pragma.
+   --  Contains all the information from an Attach_Handler pragma
 
    type New_Handler_Array is
      array (Positive_Static_Handler_Index range <>) of New_Handler_Item;
@@ -253,7 +248,7 @@ package System.Interrupts is
 
    function Has_Interrupt_Or_Attach_Handler
      (Object : access Dynamic_Interrupt_Protection) return Boolean;
-   --  Returns True.
+   --  Returns True
 
    --  Case (2)
 
@@ -267,9 +262,8 @@ package System.Interrupts is
      end record;
 
    function Has_Interrupt_Or_Attach_Handler
-     (Object : access Static_Interrupt_Protection)
-      return   Boolean;
-   --  Returns True.
+     (Object : access Static_Interrupt_Protection) return Boolean;
+   --  Returns True
 
    procedure Finalize (Object : in out Static_Interrupt_Protection);
    --  Restore previous handlers as required by C.3.1(12) then call
@@ -277,7 +271,7 @@ package System.Interrupts is
 
    procedure Install_Handlers
      (Object       : access Static_Interrupt_Protection;
-      New_Handlers : in New_Handler_Array);
+      New_Handlers : New_Handler_Array);
    --  Store the old handlers in Object.Previous_Handlers and install
    --  the new static handlers.
 
index e1bd1e8bd9689369193af8f64f3b6b669233c726..609871aa1c8a2f81f4f91a2a530c7f582a285ebb 100644 (file)
@@ -9603,13 +9603,15 @@ package body Sem_Ch3 is
          end if;
       end Comes_From_Generic;
 
+   --  Start of processing for Derived_Type_Declaration
+
    begin
       Parent_Type := Find_Type_Of_Subtype_Indic (Indic);
 
       if Parent_Type = Any_Type
         or else Etype (Parent_Type) = Any_Type
         or else (Is_Class_Wide_Type (Parent_Type)
-                  and then Etype (Parent_Type) = T)
+                   and then Etype (Parent_Type) = T)
       then
          --  If Parent_Type is undefined or illegal, make new type into a
          --  subtype of Any_Type, and set a few attributes to prevent cascaded
index ee6e8bb5151c23a0e894694bdbc98d4577edd268..66f13453c50c4fa843ebb064f7c87df8530e3156 100644 (file)
@@ -735,15 +735,18 @@ package body Snames is
    --    xxxDF   deep finalize routine for type xxx                 (Exp_TSS)
    --    xxxDI   deep initialize routine for type xxx               (Exp_TSS)
    --    xxxEQ   composite equality routine for record type xxx     (Exp_TSS)
+   --    xxxFA   PolyORB/DSA From_Any converter for type xxx        (Exp_TSS)
    --    xxxIP   initialization procedure for type xxx              (Exp_TSS)
-   --    xxxRA   RAs type access routine for type xxx               (Exp_TSS)
-   --    xxxRD   RAs type dereference routine for type xxx          (Exp_TSS)
+   --    xxxRA   RAS type access routine for type xxx               (Exp_TSS)
+   --    xxxRD   RAS type dereference routine for type xxx          (Exp_TSS)
    --    xxxRP   Rep to Pos conversion for enumeration type xxx     (Exp_TSS)
    --    xxxSA   array/slice assignment for controlled comp. arrays (Exp_TSS)
    --    xxxSI   stream input attribute subprogram for type xxx     (Exp_TSS)
    --    xxxSO   stream output attribute subprogram for type xxx    (Exp_TSS)
    --    xxxSR   stream read attribute subprogram for type xxx      (Exp_TSS)
    --    xxxSW   stream write attribute subprogram for type xxx     (Exp_TSS)
+   --    xxxTA   PolyORB/DSA To_Any converter for type xxx          (Exp_TSS)
+   --    xxxTC   PolyORB/DSA Typecode for type xxx                  (Exp_TSS)
 
    --  Implicit type names