aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2020-06-23 17:17:50 +0200
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 13:14:35 -0300
commitd746eee06ef1f2311945bd49153377b614e0481e (patch)
tree8719709e6151e540ea8c78692afc9a63432b2f42 /gcc
parent24229d91e9598297adc0b3401db894a4fb10939a (diff)
downloadgcc-d746eee06ef1f2311945bd49153377b614e0481e.zip
gcc-d746eee06ef1f2311945bd49153377b614e0481e.tar.gz
gcc-d746eee06ef1f2311945bd49153377b614e0481e.tar.bz2
Minor adjustment in assignment case
gcc/ada/ChangeLog: * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do not test Is_Bit_Packed_Array in the memset path.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/gcc-interface/trans.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 313a2fb..a64b6d0 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -7282,10 +7282,8 @@ gnat_to_gnu (Node_Id gnat_node)
: gnat_expr;
const Entity_Id gnat_type
= Underlying_Type (Etype (Name (gnat_node)));
- const bool regular_array_type_p
- = Is_Array_Type (gnat_type) && !Is_Bit_Packed_Array (gnat_type);
const bool use_memset_p
- = regular_array_type_p
+ = Is_Array_Type (gnat_type)
&& Nkind (gnat_inner) == N_Aggregate
&& Is_Single_Aggregate (gnat_inner);
@@ -7356,7 +7354,8 @@ gnat_to_gnu (Node_Id gnat_node)
not completely disjoint, play safe and use memmove. But don't do
it for a bit-packed array as it might not be byte-aligned. */
if (TREE_CODE (gnu_result) == MODIFY_EXPR
- && regular_array_type_p
+ && Is_Array_Type (gnat_type)
+ && !Is_Bit_Packed_Array (gnat_type)
&& !(Forwards_OK (gnat_node) && Backwards_OK (gnat_node)))
{
tree to = TREE_OPERAND (gnu_result, 0);