aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2020-07-25 13:16:32 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-10-21 03:22:43 -0400
commitac38961bad550e8054eff14466fdc8884bee1502 (patch)
tree33088ec69dd5055260677735c759ec9ee66c0d28 /gcc/ada
parent73764bae1d416524fc06e0f01f81c7274ec0937b (diff)
downloadgcc-ac38961bad550e8054eff14466fdc8884bee1502.zip
gcc-ac38961bad550e8054eff14466fdc8884bee1502.tar.gz
gcc-ac38961bad550e8054eff14466fdc8884bee1502.tar.bz2
[Ada] Spurious error in taft ammendment derivation of CPP type
gcc/ada/ * sem_ch3.adb (Build_Derived_Type): Propagate convention of class-wide parent.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_ch3.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index be5ed67..a8baad9 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -9751,6 +9751,13 @@ package body Sem_Ch3 is
Set_Convention (Derived_Type, Convention (Parent_Base));
+ if Is_Tagged_Type (Derived_Type)
+ and then Present (Class_Wide_Type (Derived_Type))
+ then
+ Set_Convention (Class_Wide_Type (Derived_Type),
+ Convention (Class_Wide_Type (Parent_Base)));
+ end if;
+
-- Set SSO default for record or array type
if (Is_Array_Type (Derived_Type) or else Is_Record_Type (Derived_Type))