diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-26 09:40:31 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-26 09:40:31 +0000 |
commit | 218518967cb95dbe205375ff843e29716ba8dac5 (patch) | |
tree | 4d9294303cc6fa17fcdfc14d6422540b55788648 /gcc/ada/inline.adb | |
parent | ed104e5bf10ddc6f1f4b3b59745462d692516af4 (diff) | |
download | gcc-218518967cb95dbe205375ff843e29716ba8dac5.tar.gz |
2008-05-26 Ed Schonberg <schonberg@adacore.com>
* inline.adb:
(Cleanup_Scopes): For a protected operation, transfer finalization list
to protected body subprogram, to force cleanup actions when needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135900 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/inline.adb')
-rw-r--r-- | gcc/ada/inline.adb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb index 332994ea285..296ff6b1df5 100644 --- a/gcc/ada/inline.adb +++ b/gcc/ada/inline.adb @@ -847,11 +847,15 @@ package body Inline is -- cleanup operations have been delayed, and the subprogram -- has been rewritten in the expansion of the enclosing -- protected body. It is the corresponding subprogram that - -- may require the cleanup operations. + -- may require the cleanup operations, so propagate the + -- information that triggers cleanup activity. Set_Uses_Sec_Stack (Protected_Body_Subprogram (Scop), Uses_Sec_Stack (Scop)); + Set_Finalization_Chain_Entity + (Protected_Body_Subprogram (Scop), + Finalization_Chain_Entity (Scop)); Scop := Protected_Body_Subprogram (Scop); end if; |