From 5413faaec7a2f4a9501361aabd6350f858a9b691 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Tue, 19 Jan 2021 03:32:24 -0500 Subject: [PATCH] [Ada] Fix handling of PATs gcc/ada/ * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs. --- gcc/ada/exp_pakd.adb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/ada/exp_pakd.adb b/gcc/ada/exp_pakd.adb index 6ccf237..1dc6af9 100644 --- a/gcc/ada/exp_pakd.adb +++ b/gcc/ada/exp_pakd.adb @@ -1909,9 +1909,10 @@ package body Exp_Pakd is -- where PAT is the packed array type. This works fine, since in the -- modular case we guarantee that the unused bits are always zeroes. -- We do have to compare the lengths because we could be comparing - -- two different subtypes of the same base type. + -- two different subtypes of the same base type. We can only do this + -- if the PATs on both sides are the same. - if Is_Modular_Integer_Type (PAT) then + if Is_Modular_Integer_Type (PAT) and then PAT = Etype (R) then Rewrite (N, Make_And_Then (Loc, Left_Opnd => -- 2.7.4