exp_ch9.ads, [...] (Family_Offset): Add new 'Cap' boolean parameter.
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 6 Apr 2007 09:20:37 +0000 (11:20 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 6 Apr 2007 09:20:37 +0000 (11:20 +0200)
commitcc2c4c656715397ac4f815c5b4987c03dd839cbf
tree5e652cf55de9f2dc7750f819386dfd9793ef1257
parentafe4375b43ca2a4b57c992ab6dc6f242ddd5e124
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
gcc/ada/exp_ch9.adb
gcc/ada/exp_ch9.ads