From: Eric Botcazou Date: Tue, 4 Aug 2020 13:08:56 +0000 (+0200) Subject: [Ada] Fix bogus error for bit-packed array with volatile component X-Git-Tag: basepoints/gcc-12~4098 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ff5f7210f74f3190ec50b526a0dfb5be462b28b;p=thirdparty%2Fgcc.git [Ada] Fix bogus error for bit-packed array with volatile component gcc/ada/ * freeze.adb (Check_Strict_Alignment): Do not set the flag for a bit-packed array type, even if it is a by-reference type. --- diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index f090b3efbb3c..08c78a3c0d2f 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -1609,7 +1609,10 @@ package body Freeze is Comp : Entity_Id; begin - if Is_By_Reference_Type (E) then + -- Bit-packed array types do not require strict alignment, even if they + -- are by-reference types, because they are accessed in a special way. + + if Is_By_Reference_Type (E) and then not Is_Bit_Packed_Array (E) then Set_Strict_Alignment (E); elsif Is_Array_Type (E) then