Commit 3e038221 by Ed Schonberg Committed by Arnaud Charlet

exp_ch9.ads, [...] (Build_Protected_Entry): Set sloc of generated exception…

exp_ch9.ads, [...] (Build_Protected_Entry): Set sloc of generated exception handler appropriately when debugging generated code.

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.

From-SVN: r125401
parent dbe13a37
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment