summaryrefslogtreecommitdiff
path: root/gcc/sbitmap.c
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@gcc.gnu.org>2004-05-13 02:41:07 -0400
committerDiego Novillo <dnovillo@gcc.gnu.org>2004-05-13 02:41:07 -0400
commit6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f (patch)
treea2568888a519c077427b133de9ece5879a8484a5 /gcc/sbitmap.c
parentac1a20aec53364d77f3bdff94a2a0a06840e0fe9 (diff)
downloadgcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.gz
Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
Diffstat (limited to 'gcc/sbitmap.c')
-rw-r--r--gcc/sbitmap.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/sbitmap.c b/gcc/sbitmap.c
index 1d27a871097..dfd764528cb 100644
--- a/gcc/sbitmap.c
+++ b/gcc/sbitmap.c
@@ -103,6 +103,32 @@ sbitmap_resize (sbitmap bmap, unsigned int n_elms, int def)
return bmap;
}
+/* Re-allocate a simple bitmap of N_ELMS bits. New storage is uninitialized. */
+
+sbitmap
+sbitmap_realloc (sbitmap src, unsigned int n_elms)
+{
+ unsigned int bytes, size, amt;
+ sbitmap bmap;
+
+ size = SBITMAP_SET_SIZE (n_elms);
+ bytes = size * sizeof (SBITMAP_ELT_TYPE);
+ amt = (sizeof (struct simple_bitmap_def)
+ + bytes - sizeof (SBITMAP_ELT_TYPE));
+
+ if (src->bytes >= bytes)
+ {
+ src->n_bits = n_elms;
+ return src;
+ }
+
+ bmap = (sbitmap) xrealloc (src, amt);
+ bmap->n_bits = n_elms;
+ bmap->size = size;
+ bmap->bytes = bytes;
+ return bmap;
+}
+
/* Allocate a vector of N_VECS bitmaps of N_ELMS bits. */
sbitmap *