BitVecForeach

Table of Contents

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

NameDirectionDescription
bvin,outBitvector to iterate over.
varinName 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++;

Share :