exp_ch4.adb (Insert_Dereference_Action): Reimplemented.
authorHristian Kirtchev <kirtchev@adacore.com>
Tue, 15 May 2012 12:09:44 +0000 (12:09 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 15 May 2012 12:09:44 +0000 (14:09 +0200)
commitb0d7135584eb90c1d4de57d754c8963b1703fcc6
treee54aec67d2825cbc15550a9abbb2f2b48bcfcc7b
parent5b5b27adff45664299c19f4666e078f4acecfdf7
exp_ch4.adb (Insert_Dereference_Action): Reimplemented.

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.

From-SVN: r187530
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