[Ada] Spurious error private subtype derivation
authorEd Schonberg <schonberg@adacore.com>
Mon, 1 Jul 2019 13:37:26 +0000 (13:37 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 1 Jul 2019 13:37:26 +0000 (13:37 +0000)
commitf603c9855e36cd7ab706174bddb997b7bb3f2ce2
tree5c569b0ca4dcecefcfb0993079cd3ebaa6d18c58
parent497ee82ba3b1f9e9154d978022ca51c88e49003e
[Ada] Spurious error private subtype derivation

This patch fixes a spurious error on a derived type declaration whose
subtype indication is a subtype of a private type whose full view is a
constrained discriminated type.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
declared as a subtype of a private type with an inherited
discriminant constraint, its generated full base appears as a
record subtype, so we need to retrieve its oen base type so that
the inherited constraint can be applied to it.

gcc/testsuite/

* gnat.dg/derived_type6.adb, gnat.dg/derived_type6.ads: New
testcase.

From-SVN: r272879
gcc/ada/ChangeLog
gcc/ada/sem_ch3.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/derived_type6.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/derived_type6.ads [new file with mode: 0644]