aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-12-13 04:33:11 +0000
committerJeff Law <law@gcc.gnu.org>1999-12-12 21:33:11 -0700
commitfa0933ba25d5657d079bff30cf58a6bfc79ce483 (patch)
treef31e9b2730fe8050a017e078587277e5bc7f0e66
parent3a1760acf09c45a309580e2f232eafb8cfe4e08f (diff)
downloadgcc-fa0933ba25d5657d079bff30cf58a6bfc79ce483.zip
gcc-fa0933ba25d5657d079bff30cf58a6bfc79ce483.tar.gz
gcc-fa0933ba25d5657d079bff30cf58a6bfc79ce483.tar.bz2
* cse.c (cse_basic_block): Free qty_table consistently.
From-SVN: r30882
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cse.c15
2 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10ac35a..950fdb9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
+
+ * cse.c (cse_basic_block): Free qty_table consistently.
+
1999-12-12 David S. Miller <davem@redhat.com>
Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/cse.c b/gcc/cse.c
index bc9e7b6..24785ec 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6961,7 +6961,10 @@ cse_basic_block (from, to, next_branch, around_loop)
if (simplejump_p (insn))
{
if (to == 0)
- return 0;
+ {
+ free (qty_table + max_reg);
+ return 0;
+ }
if (JUMP_LABEL (insn) == to)
to_usage = 1;
@@ -6993,13 +6996,19 @@ cse_basic_block (from, to, next_branch, around_loop)
/* If TO was the last insn in the function, we are done. */
if (insn == 0)
- return 0;
+ {
+ free (qty_table + max_reg);
+ return 0;
+ }
/* If TO was preceded by a BARRIER we are done with this block
because it has no continuation. */
prev = prev_nonnote_insn (to);
if (prev && GET_CODE (prev) == BARRIER)
- return insn;
+ {
+ free (qty_table + max_reg);
+ return insn;
+ }
/* Find the end of the following block. Note that we won't be
following branches in this case. */