From 16e307b9a48813a08852fec16e77eb921db78b37 Mon Sep 17 00:00:00 2001 From: Javier Miranda Date: Fri, 2 Jul 2021 13:13:12 -0400 Subject: [PATCH] [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. --- gcc/ada/exp_ch6.adb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 5055184..7717fa7 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 -- 2.7.4