From 1b762d7b0b7b32700e60e895992d3dbbba80b10b Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Mon, 26 May 2008 11:40:31 +0200 Subject: [PATCH] 2008-05-26 Ed Schonberg * inline.adb: (Cleanup_Scopes): For a protected operation, transfer finalization list to protected body subprogram, to force cleanup actions when needed. From-SVN: r135900 --- gcc/ada/inline.adb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; -- 2.30.2