aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2020-03-24 14:57:09 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-12 04:29:26 -0400
commita80b1eb72d6f227fc7d1cca36a6c29614a80ab10 (patch)
tree460771b890dc690cf5337ac8acdbe29a598e0c85 /gcc/gimplify.c
parente2b7399e34bab3aec45af99da7c31eb571f27f21 (diff)
downloadgcc-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