]> gcc.gnu.org Git - gcc.git/commit
exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an ancestor part given...
authorGary Dismukes <dismukes@adacore.com>
Thu, 16 Aug 2007 12:18:16 +0000 (14:18 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 16 Aug 2007 12:18:16 +0000 (14:18 +0200)
commit19590d704b6d6eb487b63e112490e1d19946bae7
tree8287b01b502f473c13196227c59903c163f16ae6
parent4c8e94abdccacc49ab9a087e34cd89cee8bc2f7e
exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an ancestor part given by an aggregate to test for an...

2007-08-16  Gary Dismukes  <dismukes@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
ancestor part given by an aggregate to test for an unchecked conversion,
since this can occur in some cases when the ancestor part is a function
call, and we don't want to fall into the recursive call to this
procedure in that case.

* exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
stream attributes on limited types to account for user-specified
attributes as well as whether Input (resp. Output) becomes available
due to Read (resp. Write) being available for the type. Change Boolean
variable to the more accurate name
Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
double-"not" predicate at beginning of return statement to more
understandable form.

* exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
return has an associated N_Handled_Sequence_Of_Statements, then wrap it
in a block statement and use that as the first statement of the
expanded return rather than incorrectly using the handled sequence as
the first statement.

* exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
operation, generate an explicit freeze node for it rather than
generating extra formals, to ensure that gigi has the proper order of
elaboration for anonymous subtypes in the signature of the subprograms.
(Build_In_Place_Formal): Move assertion to beginning of loop.
(Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
applied to a function call (occurs for some cases of 'Input).
(Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
applied to a function call (occurs for some cases of 'Input).

* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
2005, generate an extended return statement enclosing the result object
and 'Read call.

* freeze.adb (Freeze_Record_Type): Extend the current management of
components that are access type with an allocator as default value: add
missing support to the use of qualified expressions of the
allocator (which also cause freezing of the designated type!)
(Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
dispatching operation, since extra formals may be needed by calls to
build-in-place functions (such as stream 'Input).

* sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
formals for 'Constrained and accessibility level in the case of a
predefined dispatching operation.

* exp_util.adb (Insert_Actions): A protected body is a valid insertion
point, no need to find the parent node.

From-SVN: r127538
gcc/ada/exp_aggr.adb
gcc/ada/exp_ch3.adb
gcc/ada/exp_ch5.adb
gcc/ada/exp_ch6.adb
gcc/ada/exp_strm.adb
gcc/ada/exp_util.adb
gcc/ada/freeze.adb
gcc/ada/sem_ch6.adb
This page took 0.070987 seconds and 5 git commands to generate.