diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2020-03-24 14:57:09 +0100 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-12 04:29:26 -0400 |
commit | a80b1eb72d6f227fc7d1cca36a6c29614a80ab10 (patch) | |
tree | 460771b890dc690cf5337ac8acdbe29a598e0c85 /gcc/gimplify.c | |
parent | e2b7399e34bab3aec45af99da7c31eb571f27f21 (diff) | |
download | gcc-a80b1eb72d6f227fc7d1cca36a6c29614a80ab10.zip gcc-a80b1eb72d6f227fc7d1cca36a6c29614a80ab10.tar.gz gcc-a80b1eb72d6f227fc7d1cca36a6c29614a80ab10.tar.bz2 |
[Ada] Improve code generated for assignment of dynamic record aggregates
2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
* exp_aggr.adb: Add with and use clauses for Sem_Mech.
(Get_Base_Object): New function to get the base object of a node.
(In_Place_Assign_OK): Add Target_Object parameter. Deal with a
qualified expression on entry. Remove short-circuit for array
aggregates with a single "others" choice. Do not look into the
components of the aggregate if the parent is an allocator.
(Check_Component): Add T_OK parameter and rewrite.
(Safe_Component): Invoke Check_Component with T_OK set to False.
(Convert_To_Assignments): Try to use an in-place assignment for
any target; for that, call Get_Base_Object on the target and pass
the result to In_Place_Assign_OK.
(Expand_Array_Aggregate): Use Parent_Kind and Parent_Node more
consistently. For an assignment, call Get_Base_Object on the
target and pass the result to In_Place_Assign_OK.
Diffstat (limited to 'gcc/gimplify.c')
0 files changed, 0 insertions, 0 deletions