From: Javier Miranda Date: Fri, 2 Jul 2021 17:13:12 +0000 (-0400) Subject: [Ada] Interface behaves differently from abstract tagged null X-Git-Tag: basepoints/gcc-13~4578 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=16e307b9a48813a08852fec16e77eb921db78b37;p=thirdparty%2Fgcc.git [Ada] Interface behaves differently from abstract tagged null gcc/ada/ * exp_ch6.adb (Expand_Simple_Function_Return): For explicit dereference of type conversion, enable code that ensures that the tag of the result is that of the result type. --- diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 50551847629f..7717fa7c0ab6 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -7437,6 +7437,10 @@ package body Exp_Ch6 is and then not Is_Class_Wide_Type (Utyp) and then (Nkind (Exp) in N_Type_Conversion | N_Unchecked_Type_Conversion + or else (Nkind (Exp) = N_Explicit_Dereference + and then Nkind (Prefix (Exp)) in + N_Type_Conversion | + N_Unchecked_Type_Conversion) or else (Is_Entity_Name (Exp) and then Is_Formal (Entity (Exp)))) then