2012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 May 2012 12:09:44 +0000 (12:09 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 May 2012 12:09:44 +0000 (12:09 +0000)
commit30d0732db798873be4b369117773f09e325f56c3
treee54aec67d2825cbc15550a9abbb2f2b48bcfcc7b
parentb98fca2b86009af51f33cb04c0af5eca3e8a5da6
2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The
routine performs address and size adjustments for dereferences
of heap-allocated controlled objects. This manipulation is needed
in order to restore the original state of the memory at the time
it was allocated by the finalization machinery.
* rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables
RE_Id and RE_Unit_Table.
* sinfo.adb (Has_Dereference_Action): New routine.
(Set_Has_Dereference_Action): New routine.
* sinfo.ads: Add new semantic flag Has_Dereference_Action along
its association in nodes.
(Has_Dereference_Action): New routine and pragma Inline.
(Set_Has_Dereference_Action): New routine and pragma Inline.
* s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New
routine.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187530 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/ChangeLog
gcc/ada/exp_ch4.adb
gcc/ada/rtsfind.ads
gcc/ada/s-stposu.adb
gcc/ada/s-stposu.ads
gcc/ada/sinfo.adb
gcc/ada/sinfo.ads