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:
Richard Biener 2016-10-07 11:26:15 +00:00 committed by Richard Biener
parent a30fe4b681
commit 7a18d752e7
2 changed files with 17 additions and 0 deletions

View File

@ -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.

View File

@ -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