aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEd Schonberg <schonber@gnat.com>2001-10-11 23:50:31 +0000
committerGeert Bosch <bosch@gcc.gnu.org>2001-10-12 01:50:31 +0200
commit9e2b96271da2e46088221b201054383643ae935b (patch)
tree8ee67abeaa2a68e0616f04988bc9edc90d9c475d /gcc
parentbe98560f314f6940b262501fca7ffdd99b223b04 (diff)
downloadgcc-9e2b96271da2e46088221b201054383643ae935b.zip
gcc-9e2b96271da2e46088221b201054383643ae935b.tar.gz
gcc-9e2b96271da2e46088221b201054383643ae935b.tar.bz2
exp_ch7.adb (Make_Transient_Block): if statement is within exception handler...
* exp_ch7.adb (Make_Transient_Block): if statement is within exception handler, always use new transient scope to place Clean procedure. From-SVN: r46208
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 889ac48..16ecc43 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 3feba78..03e8360 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