exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type conversion.
2006-10-31 Javier Miranda <miranda@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Bob Duff <duff@adacore.com>
Gary Dismukes <dismukes@adacore.com>
Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
conversion.
(Expand_N_In): Do validity checks on range
(Expand_Selected_Component): Use updated for of Denotes_Discriminant.
(Expand_N_Allocator): For "new T", if the object is constrained by
discriminant defaults, allocate the right amount of memory, rather than
the maximum for type T.
(Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
when the allocator is initialized by a build-in-place call, since the
allocator is already rewritten as a reference to the function result,
and this prevents an unwanted duplication of the function call.
Add with and use of Exp_Ch6.
(Expand_Allocator_Expresssion): Check for an allocator whose expression
is a call to build-in-place function and apply
Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
untagged designated types).
(Expand_N_Unchecked_Type_Conversion): Do not do integer literal
optimization if source or target is biased.
(Expand_N_Allocator): Add comments for case of an allocator within a
function that returns an anonymous access type designating tasks.
(Expand_N_Allocator): apply discriminant checks for access
discriminants of anonymous access types (AI-402, AI-416)
From-SVN: r118257