/*
- * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
* @brief convenience layer over raw_bitsets (stores number of bits
* with the bitfield)
* @author Matthias Braun
- * @version $Id$
*/
#ifndef FIRM_ADT_BITSET_H
#define FIRM_ADT_BITSET_H
#include <stdio.h>
#include <assert.h>
#include <string.h>
+#include "irprintf.h"
#include "xmalloc.h"
#include "bitfiddle.h"
*/
static inline size_t bitset_next_clear(const bitset_t *bs, size_t pos)
{
- if (pos >= bs->size)
- return (size_t)-1;
return rbitset_next_max(bs->data, pos, bs->size, false);
}
*/
static inline size_t bitset_next_set(const bitset_t *bs, size_t pos)
{
- if (pos >= bs->size)
- return (size_t)-1;
return rbitset_next_max(bs->data, pos, bs->size, true);
}
* @param bitset The bitset.
* @param elm A size_t variable.
*/
-#define bitset_foreach(bitset,elm) \
- for(elm = bitset_next_set(bitset,0); elm != (size_t)-1; elm = bitset_next_set(bitset,elm+1))
+#define bitset_foreach(bitset, elm) \
+ for (size_t elm = 0; (elm = bitset_next_set((bitset), elm)) != (size_t)-1; ++elm)
-#define bitset_foreach_clear(bitset,elm) \
- for(elm = bitset_next_clear(bitset,0); elm != (size_t) -1; elm = bitset_next_clear(bitset,elm+1))
+#define bitset_foreach_clear(bitset, elm) \
+ for (size_t elm = 0; (elm = bitset_next_clear((bitset), elm)) != (size_t)-1; ++elm)
/**
* Count the bits set.
putc('{', file);
for(i = bitset_next_set(bs, 0); i != (size_t)-1; i = bitset_next_set(bs, i + 1)) {
- fprintf(file, "%s%lu", prefix, (unsigned long) i);
+ ir_fprintf(file, "%s%zu", prefix, i);
prefix = ",";
}
putc('}', file);