aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/check.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2019-08-13 08:08:47 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-08-13 08:08:47 +0000
commited5786a74537bde38eba66b44fa0aa88b3d2ae89 (patch)
tree9b6a34e92a3d994bf6a889e0c9cbda21432c48c1 /gcc/fortran/check.c
parentcffb8f959c237b5af9e94ad4d0188a34acf5d910 (diff)
downloadgcc-ed5786a74537bde38eba66b44fa0aa88b3d2ae89.zip
gcc-ed5786a74537bde38eba66b44fa0aa88b3d2ae89.tar.gz
gcc-ed5786a74537bde38eba66b44fa0aa88b3d2ae89.tar.bz2
[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
Diffstat (limited to 'gcc/fortran/check.c')
0 files changed, 0 insertions, 0 deletions