summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch9.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-06 10:26:18 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-06 10:26:18 +0000
commit4961db87b110ff3c1ceb8f3b3152146c58d71e78 (patch)
tree75dd62a1bd0f623e5318996bf4306979fd29df46 /gcc/ada/exp_ch9.ads
parent8012aeacfcb15b5fa84f64565feb26d77283011e (diff)
downloadgcc-4961db87b110ff3c1ceb8f3b3152146c58d71e78.tar.gz
2007-04-20 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of generated exception handler appropriately when debugging generated code. Deal properly with No_Exception_Propagation restriction mode. (Expand_N_Abort_Statement): Add an unchecked type conversion from System.Address to System.Tasking.Task_Id when processing the result of the predefined primitive _disp_get_task_id. (Expand_N_Asynchronous_Select): Clarify comment. (Expand_N_Protected_Type_Declaration): Minor code cleanup. (Find_Parameter_Type): New routine inside Type_Conformant_Parameters. (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup. (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for privals and for generated call to Complete_Entry_Body, for better gdb behavior. (Copy_Result_Type): Utility to construct a parameter and result profile for protected functions whose return type is an anonymous access to subprogram. (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type): call the above. (Build_Task_Activation_Call): Insert Activate_Tasks call at proper point when the local-raise-to-goto transformation has taken place. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125401 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch9.ads')
-rw-r--r--gcc/ada/exp_ch9.ads29
1 files changed, 18 insertions, 11 deletions
diff --git a/gcc/ada/exp_ch9.ads b/gcc/ada/exp_ch9.ads
index 819e8064087..88d0e05b55c 100644
--- a/gcc/ada/exp_ch9.ads
+++ b/gcc/ada/exp_ch9.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2006, 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- --
@@ -26,6 +26,7 @@
-- Expand routines for chapter 9 constructs
+with Namet; use Namet;
with Types; use Types;
package Exp_Ch9 is
@@ -86,6 +87,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
@@ -250,16 +259,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);