BitVecForeach
- Macro
- October 8, 2025
Table of Contents
BitVecForeach
BitVecForeach
Description
Iterate over each bit var
of the given bitvector bv
. This is a convenience macro that iterates forward using an internally managed index. The variable var
is declared and defined by this macro.
Parameters
Name | Direction | Description |
---|---|---|
bv | in,out | Bitvector to iterate over. |
var | in | Name of the variable to be used which will contain the value of the current bit during iteration. The type of var will be bool . |
Usage example (Cross-references)
// Test BitVecForeach macro
bool test_bitvec_foreach(void) {
WriteFmt("Testing BitVecForeach macro\n");
BitVec bv = BitVecInit();
u64 false_count = 0;
BitVecForeach(&bv, bit) {
if (bit) {
true_count++;
// Test foreach on empty bitvec
BitVecForeach(&bv, bit) {
(void)bit;
count++; // Should not execute
BitVecPush(&bv, true);
count = 0;
BitVecForeach(&bv, bit) {
count++;
result = result && (bit == true);
count = 0;
BitVecForeach(&bv, bit) {
(void)bit;
count++;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
BitVecForeach(&bv, bitval) {
(void)bitval;
count1++;
// Test BitVecForeach macro
bool test_bitvec_foreach(void) {
WriteFmt("Testing BitVecForeach macro\n");
BitVec bv = BitVecInit();
u64 false_count = 0;
BitVecForeach(&bv, bit) {
if (bit) {
true_count++;
// Test foreach on empty bitvec
BitVecForeach(&bv, bit) {
(void)bit;
count++; // Should not execute
BitVecPush(&bv, true);
count = 0;
BitVecForeach(&bv, bit) {
count++;
result = result && (bit == true);
count = 0;
BitVecForeach(&bv, bit) {
(void)bit;
count++;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
BitVecForeach(&bv, bitval) {
(void)bitval;
count1++;
// This should abort due to ValidateBitVec check
int count = 0;
BitVecForeach(&bv, bit) {
(void)bit;
count++;
// This should abort due to ValidateBitVec check
int count = 0;
BitVecForeach(&bv, bit) {
(void)bit;
count++;