From: Justin Squirek Date: Tue, 22 Jun 2021 21:31:55 +0000 (-0400) Subject: [Ada] Spurious accessibility error on allocator in generic instance X-Git-Tag: basepoints/gcc-13~4622 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=518cededb0ca426ef6fd04bb9e4db2082da671e2;p=thirdparty%2Fgcc.git [Ada] Spurious accessibility error on allocator in generic instance gcc/ada/ * exp_ch4.adb (Expand_N_Type_Conversion): Add guard to protect against calculating accessibility levels against internal compiler-generated types. --- diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 16f513e32265..45b9c769360c 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -12361,10 +12361,16 @@ package body Exp_Ch4 is -- an instantiation, otherwise the conversion will already have been -- rejected as illegal. - -- Note: warnings are issued by the analyzer for the instance cases + -- Note: warnings are issued by the analyzer for the instance cases, + -- and, since we are late in expansion, a check is performed to + -- verify that neither the target type nor the operand type are + -- internally generated - as this can lead to spurious errors when, + -- for example, the operand type is a result of BIP expansion. elsif In_Instance_Body and then Statically_Deeper_Relation_Applies (Target_Type) + and then not Is_Internal (Target_Type) + and then not Is_Internal (Operand_Type) and then Type_Access_Level (Operand_Type) > Type_Access_Level (Target_Type) then