[Ada] Unnesting transformations for blocks in package bodies
authorEd Schonberg <schonberg@adacore.com>
Wed, 14 Nov 2018 11:40:59 +0000 (11:40 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 14 Nov 2018 11:40:59 +0000 (11:40 +0000)
commit302319e08c092b95b31c2aaa7763cc0e54ae0813
tree6484576740debd61818cdd2adb184f0b3196b69e
parentc1514eb060c72193a17b22467428d5e0d0b76ffb
[Ada] Unnesting transformations for blocks in package bodies

The declarations in the package body may have created blocks with nested
subprograms. Such a block must be transformed into a procedure followed
by a call to it, so that unnesting can handle uplevel references within
these nested subprograms (typically generated subprograms to handle
finalization actions).

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

gcc/ada/

* exp_ch7.adb (Check_Unnesting_In_Declarations): New procedure
to transform blocks that appear in the declarative part of a
package body into subprograms if they contain generated
subprograms (such as finalization routines). Needed to generate
the proper upward references in unnesting mode.

From-SVN: r266117
gcc/ada/ChangeLog
gcc/ada/exp_ch7.adb