summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-11 23:50:31 +0000
committerbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-11 23:50:31 +0000
commitadb1cfa4922af3212ab215fc24ebbdd4c2912f87 (patch)
tree8ee67abeaa2a68e0616f04988bc9edc90d9c475d /gcc
parentd74eb70603dddd5e774b066b1d5bb67b54d51bba (diff)
downloadgcc-adb1cfa4922af3212ab215fc24ebbdd4c2912f87.tar.gz
* exp_ch7.adb (Make_Transient_Block): if statement is within
exception handler, always use new transient scope to place Clean procedure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46208 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/exp_ch7.adb4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 889ac48015e..16ecc43422f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2001-10-11 Ed Schonberg <schonber@gnat.com>
+
+ * exp_ch7.adb (Make_Transient_Block): if statement is within
+ exception handler, always use new transient scope to place Clean
+ procedure.
+
2001-10-11 Pascal Obry <obry@gnat.com>
* Makefile.in:
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index 3feba78ecd7..03e83603a1e 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- $Revision: 1.245 $
+-- $Revision$
-- --
-- Copyright (C) 1992-2001, Free Software Foundation, Inc. --
-- --
@@ -2404,6 +2404,7 @@ package body Exp_Ch7 is
is
Flist : constant Entity_Id := Finalization_Chain_Entity (Current_Scope);
Decls : constant List_Id := New_List;
+ Par : constant Node_Id := Parent (Action);
Instrs : constant List_Id := New_List (Action);
Blk : Node_Id;
@@ -2413,6 +2414,7 @@ package body Exp_Ch7 is
if Uses_Sec_Stack (Current_Scope)
and then No (Flist)
and then Nkind (Action) /= N_Return_Statement
+ and then Nkind (Par) /= N_Exception_Handler
then
declare