[Ada] Unnesting: fix handling of uplevel refs to unconstrained formals
authorEd Schonberg <schonberg@adacore.com>
Tue, 9 Oct 2018 15:05:54 +0000 (15:05 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 9 Oct 2018 15:05:54 +0000 (15:05 +0000)
commit9e25affdbd810a3a40cc078d2a6415dd4b3baf7b
tree8b64558b73f55937d04eda63da4104cf938c0623
parent8dcefdc00380da344956659fdb05d9b9e1aa1c8c
[Ada] Unnesting: fix handling of uplevel refs to unconstrained formals

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* exp_unst.adb (Unnest_Subprogram):  When an uplevel reference
is to an unconstrained formal, the 'Access reference that is
created to initialize the corresponding component of the
activation record must be wrapped in an unchecked conversion to
the generated type of the component. Otherwise, spurious suvtype
conformance errors will be generated when the code is within an
instantiation and the type of the formal is a formal type of the
enclosing generic. Note that during unnesting there is no simple
way to determine that the code appears within an instance
because ther is no scope stack.

From-SVN: r264972
gcc/ada/ChangeLog
gcc/ada/exp_unst.adb