[Ada] Handle implicit moves in SPARK ownership pointer support
authorYannick Moy <moy@adacore.com>
Tue, 9 Jul 2019 07:53:45 +0000 (07:53 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 9 Jul 2019 07:53:45 +0000 (07:53 +0000)
commit995d28c7551ce6a65bd34355169106aab9ee65b6
treeaad0e457523bfb411fb26a2edf8c00da9765613e
parent578d5941ee23743c28959d84fd5f6eec09c7734d
[Ada] Handle implicit moves in SPARK ownership pointer support

Allocator expressions and sub-expressions of (extension) aggregates are
implicitly the source of assignments in Ada. Thus, they should be moved
when of a deep type when checking ownership rules in SPARK.

There is no impact on compilation.

2019-07-09  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_spark.adb (Check_Expression): Handle correctly implicit
assignments as part of allocators and (extension) aggregates.
(Get_Root_Object): Adapt for new path expressions.
(Is_Path_Expression): Return True for (extension) aggregate.

From-SVN: r273271
gcc/ada/ChangeLog
gcc/ada/sem_spark.adb