[Ada] Build full derivation for private concurrent type
This extends the processing done for the derivation of private discriminated types to concurrent types, which is now required because this derivation is no longer redone when a subtype of the derived concurrent type is built. This increases the number of entities generated internally in the compiler but this case is sufficiently rare as not to be a real concern. 2019-08-13 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of local variables and use them. When the derived type fully constrains the parent type, rewrite it as a subtype of an implicit (unconstrained) derived type instead of the other way around. (Copy_And_Build): Deal with concurrent types and use predicates. (Build_Derived_Private_Type): Build the full derivation if needed for concurrent types too. (Build_Derived_Record_Type): Add marker comment. (Complete_Private_Subtype): Use predicates. gcc/testsuite/ * gnat.dg/discr56.adb, gnat.dg/discr56.ads, gnat.dg/discr56_pkg1.adb, gnat.dg/discr56_pkg1.ads, gnat.dg/discr56_pkg2.ads: New testcase. From-SVN: r274359
Showing
gcc/testsuite/gnat.dg/discr56.adb
0 → 100644
gcc/testsuite/gnat.dg/discr56.ads
0 → 100644
gcc/testsuite/gnat.dg/discr56_pkg1.adb
0 → 100644
gcc/testsuite/gnat.dg/discr56_pkg1.ads
0 → 100644
gcc/testsuite/gnat.dg/discr56_pkg2.ads
0 → 100644
Please
register
or
sign in
to comment