aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2006-01-04 09:29:32 -0700
committerJeff Law <law@gcc.gnu.org>2006-01-04 09:29:32 -0700
commit59bb84ef39a86a30c2f0280eb2176ee73a9e4cb9 (patch)
treee33b3e9de333f52a13c558fd7673b162344b00ce /gcc
parentebfd9521b5926ac5a1d80b4a2f017e4bb57545de (diff)
downloadgcc-59bb84ef39a86a30c2f0280eb2176ee73a9e4cb9.zip
gcc-59bb84ef39a86a30c2f0280eb2176ee73a9e4cb9.tar.gz
gcc-59bb84ef39a86a30c2f0280eb2176ee73a9e4cb9.tar.bz2
re PR ada/24994 (raised STORAGE_ERROR : stack overflow or erroneous memory access)
PR ada/24994 * tree-cfg.c (bsi_replace): Remove the original statement from the EH throw statement table. From-SVN: r109335
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-cfg.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 90d37de..b818536 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-01-04 Jeff Law <law@redhat.com>
+
+ PR ada/24994
+ * tree-cfg.c (bsi_replace): Remove the original statement
+ from the EH throw statement table.
+
2006-01-04 Jakub Jelinek <jakub@redhat.com>
* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 31bfc39..2f45836 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -2869,7 +2869,10 @@ bsi_replace (const block_stmt_iterator *bsi, tree stmt, bool preserve_eh_info)
{
eh_region = lookup_stmt_eh_region (orig_stmt);
if (eh_region >= 0)
- add_stmt_to_eh_region (stmt, eh_region);
+ {
+ remove_stmt_from_eh_region (stmt);
+ add_stmt_to_eh_region (stmt, eh_region);
+ }
}
delink_stmt_imm_use (orig_stmt);