[Ada] Missing predicate function body for derived type in nested package
authorEd Schonberg <schonberg@adacore.com>
Mon, 11 Jun 2018 09:19:02 +0000 (09:19 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 11 Jun 2018 09:19:02 +0000 (09:19 +0000)
commit20643f5032f7f3c11a233861e05f8efb4059e9dd
treebaa878b90794ed360933fdeb99521c2938fdfc33
parent577b1ab4b158ba501df6c6b721b83043fc26cbff
[Ada] Missing predicate function body for derived type in nested package

This patch fixes a bug in the construction of predicate functions.  For a
derived type, we must ensure that the parent type is already frozen so that its
predicate function has been constructed already. This is necessary if the
parent is declared in a nested package and its own freeze point has not been
reached when the derived type is frozen by a local object declaration.

2018-06-11  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure
that its parent is already frozen so that its predicate function, if
any, has already been constructed.

gcc/testsuite/

* gnat.dg/predicate1.adb: New testcase.

From-SVN: r261422
gcc/ada/ChangeLog
gcc/ada/sem_ch13.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/predicate1.adb [new file with mode: 0644]