bitmap.h: Document constraints on bitmap modification while iterating over it.
2016-10-07 Richard Biener <rguenther@suse.de> * bitmap.h: Document constraints on bitmap modification while iterating over it. From-SVN: r240860
This commit is contained in:
parent
a30fe4b681
commit
7a18d752e7
|
@ -1,3 +1,8 @@
|
|||
2016-10-07 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* bitmap.h: Document constraints on bitmap modification while
|
||||
iterating over it.
|
||||
|
||||
2016-10-07 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
|
||||
|
|
12
gcc/bitmap.h
12
gcc/bitmap.h
|
@ -755,6 +755,18 @@ bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no)
|
|||
}
|
||||
}
|
||||
|
||||
/* If you are modifying a bitmap you are currently iterating over you
|
||||
have to ensure to
|
||||
- never remove the current bit;
|
||||
- if you set or clear a bit before the current bit this operation
|
||||
will not affect the set of bits you are visiting during the iteration;
|
||||
- if you set or clear a bit after the current bit it is unspecified
|
||||
whether that affects the set of bits you are visiting during the
|
||||
iteration.
|
||||
If you want to remove the current bit you can delay this to the next
|
||||
iteration (and after the iteration in case the last iteration is
|
||||
affected). */
|
||||
|
||||
/* Loop over all bits set in BITMAP, starting with MIN and setting
|
||||
BITNUM to the bit number. ITER is a bitmap iterator. BITNUM
|
||||
should be treated as a read-only variable as it contains loop
|
||||
|
|
Loading…
Reference in New Issue