OSDN Git Service

PR 33870
[pf3gnuchains/gcc-fork.git] / gcc / ada / exp_ch9.ads
index baa5036..65e3d76 100644 (file)
@@ -6,18 +6,17 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, 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- --
--- ware  Foundation;  either version 2,  or (at your option) any later ver- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
 -- for  more details.  You should have  received  a copy of the GNU General --
--- Public License  distributed with GNAT;  see file COPYING.  If not, write --
--- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
--- Boston, MA 02110-1301, USA.                                              --
+-- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license.          --
 --                                                                          --
 -- GNAT was originally developed  by the GNAT team at  New York University. --
 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
@@ -26,6 +25,7 @@
 
 --  Expand routines for chapter 9 constructs
 
+with Namet; use Namet;
 with Types; use Types;
 
 package Exp_Ch9 is
@@ -77,11 +77,7 @@ package Exp_Ch9 is
    --  (other than allocators to tasks) this routine ensures that an activation
    --  chain has been declared in the appropriate scope, building the required
    --  declaration for the chain variable if not. The name of this variable
-   --  is always _Chain and it is accessed by name. This procedure also adds
-   --  an appropriate call to Activate_Tasks to activate the tasks for this
-   --  activation chain. It does not however deal with the call needed in the
-   --  case of allocators to Expunge_Unactivated_Tasks, this is separately
-   --  handled in the Expand_Task_Allocator routine.
+   --  is always _Chain and it is accessed by name.
 
    function Build_Call_With_Task (N : Node_Id; E : Entity_Id) return Node_Id;
    --  N is a node representing the name of a task or an access to a task.
@@ -90,6 +86,14 @@ package Exp_Ch9 is
    --  Task_Id of the associated task as the parameter. The caller is
    --  responsible for analyzing and resolving the resulting tree.
 
+   function Build_Corresponding_Record
+     (N    : Node_Id;
+      Ctyp : Node_Id;
+      Loc  : Source_Ptr) return Node_Id;
+   --  Common to tasks and protected types. Copy discriminant specifications,
+   --  build record declaration. N is the type declaration, Ctyp is the
+   --  concurrent entity (task type or protected type).
+
    procedure Build_Master_Entity (E : Entity_Id);
    --  Given an entity E for the declaration of an object containing tasks
    --  or of a type declaration for an allocator whose designated type is a
@@ -254,16 +258,14 @@ package Exp_Ch9 is
    procedure Expand_N_Protected_Body             (N : Node_Id);
 
    procedure Expand_N_Protected_Type_Declaration (N : Node_Id);
-   --  Expands protected type declarations. This results, among
-   --  other things, in the declaration of a record type for the
-   --  representation of protected objects and (if there are entries)
-   --  in an entry service procedure. The Protection value used by
-   --  the GNARL to control the object will always be the first
-   --  field of the record, and the entry service procedure spec
-   --  (if it exists) will always immediately follow the record
-   --  declaration. This allows these two nodes to be found from
-   --  the type using Corresponding_Record, without benefit of
-   --  of further attributes.
+   --  Expands protected type declarations. This results, among other things,
+   --  in the declaration of a record type for the representation of protected
+   --  objects and (if there are entries) in an entry service procedure. The
+   --  Protection value used by the GNARL to control the object will always be
+   --  the first field of the record, and the entry service procedure spec (if
+   --  it exists) will always immediately follow the record declaration. This
+   --  allows these two nodes to be found from the type, without benefit of
+   --  further attributes, using Corresponding_Record.
 
    procedure Expand_N_Requeue_Statement          (N : Node_Id);
    procedure Expand_N_Selective_Accept           (N : Node_Id);