[Ada] Ada 2020: Raise expressions in limited contexts (AI12-0172)
authorJavier Miranda <miranda@adacore.com>
Tue, 17 Sep 2019 07:59:53 +0000 (07:59 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 17 Sep 2019 07:59:53 +0000 (07:59 +0000)
commit327940801d612d563781e5b58063889d247058b4
tree6b276c14793087a13b68c1e4a127d7569d26b2e6
parent92167df3c9735de9c62bab9bf325618febc75198
[Ada] Ada 2020: Raise expressions in limited contexts (AI12-0172)

This patch adds support for the use of raise expressions in more
limited contexts (as described in the Ada Isssue AI12-0172).

2019-09-17  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* exp_ch3.adb (Build_Record_Init_Proc): Do not generate code to
adjust the tag component when the record is initialized with a
raise expression.
* sem_aggr.adb (Valid_Limited_Ancestor): Return True for
N_Raise_Expression nodes.
(Valid_Ancestor_Type): Return True for raise expressions.
* sem_ch3.adb (Analyze_Component_Declaration): Do not report an
error when a component is initialized with a raise expression.
* sem_ch4.adb (Analyze_Qualified_Expression): Do not report an
error when the aggregate has a raise expression.

gcc/testsuite/

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

From-SVN: r275776
gcc/ada/ChangeLog
gcc/ada/exp_ch3.adb
gcc/ada/sem_aggr.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch4.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/limited4.adb [new file with mode: 0644]