[Ada] Crash on quantified expression in disabled assertion
authorEd Schonberg <schonberg@adacore.com>
Wed, 14 Aug 2019 09:51:34 +0000 (09:51 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 14 Aug 2019 09:51:34 +0000 (09:51 +0000)
commit16b9e3c32d0c52334644021e5e0465b1c43d190e
treec953956ad17a9263c210e8f7d5199c4b60d8fdea
parent4cac730ccc741a9bf780390c2703163edc6da470
[Ada] Crash on quantified expression in disabled assertion

The defining identifier of a quantified expression may be the freeze
point of its type.  If the quantified expression appears in an assertion
that is disavbled, the freeze node for that type may appear in a tree
that will be discarded when the enclosing pragma is elaborated. To
ensure that the freeze node is reachable for subsquent uses we must
generate its freeze node explicitly when the quantified expression is
analyzed.

2019-08-14  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* exp_ch4.adb (Expand_N_Quantified_Expression): Freeze
explicitly the type of the loop parameter.

gcc/testsuite/

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

From-SVN: r274456
gcc/ada/ChangeLog
gcc/ada/exp_ch4.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/assert2.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/assert2.ads [new file with mode: 0644]