OSDN Git Service

2007-12-06 Ed Schonberg <schonberg@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Dec 2007 10:24:30 +0000 (10:24 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Dec 2007 10:24:30 +0000 (10:24 +0000)
commit441e662c5f64c08dde3c70142dd9a5043d7c0ed3
treef380a4b9454ef01b389a5e50b4c9428061c5fa4e
parent2384f9e30bfbf5678b67a77f90388a4c6fbbb6b7
2007-12-06  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
limited ancestor part, initialize controllers of enclosing record
before expanding ancestor aggregate.
(Gen_Assign): If a component of the aggregate is box-initialized, add
code to call Initialize if the component is controlled, and explicit
assignment of null if the component is an access type.

Handle properly aggregates for limited types that appear in object
declarations when the aggregate contains controlled values such as
protected types.
When expanding limited aggregates into individual components, do not
call Adjust on controlled components that are limited.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130828 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/exp_aggr.adb