[Ada] Spurious error on dynamic predicate in a generic context
authorEd Schonberg <schonberg@adacore.com>
Wed, 3 Jul 2019 08:14:24 +0000 (08:14 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 3 Jul 2019 08:14:24 +0000 (08:14 +0000)
commit8334176aaaebf68214328518b84a64ee20c72580
treef49104fe0605603f26e2afeaa5deb0d4d11eaf34
parent09c9ed5bb8b8e3b65dd2f631bf18f6b796499fbd
[Ada] Spurious error on dynamic predicate in a generic context

This patch fixes a spurious error on the conformance checking between
the expression for an aspect analyzed at the freeze point of the type,
and the analysis of a copy of the expression performed at the end of the
enclosing list of declarationss. In a generic context the first may not
have been analyzed yet and this must be done before the conformance
check.

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

gcc/ada/

* sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
message on attribute applied to a renaming when the renamed
object is an aggregate (from code reading).
(Check_Aspect_At_End_Of_Declarations): In a generic context
where freeze nodes are not generated, the original expression
for an aspect may need to be analyzed to precent spurious
conformance errors when compared with the expression that is
anakyzed at the end of the current declarative list.

gcc/testsuite/

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

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