Commit cc2c4c65 by Eric Botcazou Committed by Arnaud Charlet

exp_ch9.ads, [...] (Family_Offset): Add new 'Cap' boolean parameter.

2007-04-06  Eric Botcazou <botcazou@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
	parameter. If it is set to true, return a result capped according to
	the global upper bound for the index of an entry family.
	(Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
	(Build_Find_Body_Index): Adjust for above change.
	(Entry_Index_Expression): Likewise.
	(Is_Potentially_Large_Family): New function extracted from...
	(Collect_Entry_Families): ...here. Call it to detect whether the family
	is potentially large.
	(Build_Entry_Count_Expression): If the family is potentially large, call
	Family_Size with 'Cap' set to true.
	(Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
	a protected version of an operation declared in the private part of
	a protected object, because they may be invoked through a callback.
	(Set_Privals): If the type of a private component is an anonymous access
	type, do not create a new itype for each protected body.
	If the body of a protected operation creates
	controlled types (including allocators for class-widetypes), the
	body of the corresponding protected subprogram must include a
	finalization list.
	(Build_Activation_Chain_Entity): Build the chain entity for extended
	return statements.
	(Type_Conformant_Parameters): Use common predicate Conforming_Types
	to determine whether operation overrides an inherited primitive.
	(Build_Wrapper_Spec): Add code to examine the parents while looking
	for a possible overriding candidate.
	(Build_Simple_Entry_Call): Set No_Initialization on the object used to
	hold an actual parameter value since its initialization is separated
	from the the declaration. Prevents errors on null-excluding access
	formals.

From-SVN: r123564
parent afe4375b
......@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2006, 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- --
......@@ -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.
......
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