[gcc r12-3735] [Ada] Interface behaves differently from abstract tagged null
Pierre-Marie de Rodat
pmderodat@gcc.gnu.org
Tue Sep 21 15:26:29 GMT 2021
https://gcc.gnu.org/g:16e307b9a48813a08852fec16e77eb921db78b37
commit r12-3735-g16e307b9a48813a08852fec16e77eb921db78b37
Author: Javier Miranda <miranda@adacore.com>
Date: Fri Jul 2 13:13:12 2021 -0400
[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:
---
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 50551847629..7717fa7c0ab 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
More information about the Gcc-cvs
mailing list