diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-06 10:26:18 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-06 10:26:18 +0000 |
commit | 4961db87b110ff3c1ceb8f3b3152146c58d71e78 (patch) | |
tree | 75dd62a1bd0f623e5318996bf4306979fd29df46 /gcc/ada/exp_ch9.ads | |
parent | 8012aeacfcb15b5fa84f64565feb26d77283011e (diff) | |
download | gcc-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.ads | 29 |
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); |