BitVecMatches
- Function
- August 22, 2025
Table of Contents
BitVecMatches
BitVecMatches
Description
Match bitvector against pattern with wildcards. Wildcards allow flexible pattern matching where some positions can be “any bit”.
Parameters
Name | Direction | Description |
---|---|---|
bv | in | Bitvector to match against |
pattern | in | Pattern bitvector to match |
wildcard | in | Wildcard bitvector (1 = wildcard position, 0 = exact match required) |
Usage example (from documentation)
bool matches = BitVecMatches(&data, &pattern, &wildcard);
Usage example (Cross-references)
- In
BitVec.c:1541
:
}
bool BitVecMatches(BitVec *bv, BitVec *pattern, BitVec *wildcard) {
ValidateBitVec(bv);
ValidateBitVec(pattern);
bool test_bitvec_matches_null_source(void) {
printf("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVecPush(&pattern, true);
BitVecPush(&wildcard, false);
BitVecMatches(NULL, &pattern, &wildcard);
BitVecDeinit(&pattern);
BitVecDeinit(&wildcard);
// BitVecMatches tests
bool test_bitvec_matches_basic(void) {
printf("Testing BitVecMatches basic functionality\n");
BitVec source = BitVecInit();
BitVecPush(&wildcard, false);
result = result && BitVecMatches(&source, &pattern, &wildcard);
BitVecDeinit(&source);
// BitVecMatches tests
bool test_bitvec_matches_basic(void) {
printf("Testing BitVecMatches basic functionality\n");
BitVec source = BitVecInit();
BitVecPush(&wildcard, false);
result = result && BitVecMatches(&source, &pattern, &wildcard);
BitVecDeinit(&source);
bool test_bitvec_matches_null_source(void) {
printf("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit();
BitVec wildcard = BitVecInit();
BitVecPush(&pattern, true);
BitVecPush(&wildcard, false);
BitVecMatches(NULL, &pattern, &wildcard);
BitVecDeinit(&pattern);
BitVecDeinit(&wildcard);