[Ada] Unnesting: fix for constrained arrays and improve static constants
authorEd Schonberg <schonberg@adacore.com>
Tue, 11 Dec 2018 11:11:22 +0000 (11:11 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 11 Dec 2018 11:11:22 +0000 (11:11 +0000)
commit1d499c15a84b4a8690f423c7fc11a6edea73d9a2
tree32a7b015a9ecee4938f533c60a8d8d0d56e6f799
parent0a4578b6c6d1febbb569a473c1142135906cab18
[Ada] Unnesting: fix for constrained arrays and improve static constants

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

gcc/ada/

* exp_unst.adb (Needs_Fat_Pointer): A fat pointer is required if
the entity has a private type whose full view is an
unconstrained array type.
(Rewrite_One_Ref): If the reference is to a static constant, use
its value rather than create a reference through the activation
record. This is more efficient, and furthermore indispensable if
the context requires a static constant, such as in a branch of a
case statement.

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