diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/bitmap.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9248a10..b0e93cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2000-02-17 Jason Merrill <jason@casey.cygnus.com> + + * bitmap.c (bitmap_operation): Don't leak bitmap elements. + 2000-02-17 Mark Mitchell <mark@codesourcery.com> * function.c (thread_prologue_and_epilogue_insns): Put a line note diff --git a/gcc/bitmap.c b/gcc/bitmap.c index f43965c..6c6c978 100644 --- a/gcc/bitmap.c +++ b/gcc/bitmap.c @@ -477,7 +477,7 @@ bitmap_operation (to, from1, from2, operation) changed = 1; to_tmp = to_ptr; to_ptr = to_ptr->next; - to_tmp = bitmap_free; + to_tmp->next = bitmap_free; bitmap_free = to_tmp; } if (to_ptr && to_ptr->indx == indx) @@ -517,6 +517,11 @@ bitmap_operation (to, from1, from2, operation) to_tmp->indx = indx; bitmap_element_link (to, to_tmp); } + else + { + to_tmp->next = bitmap_free; + bitmap_free = to_tmp; + } } /* If we have elements of TO left over, free the lot. */ |