/*
- * 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.
*
#ifndef FIRM_ADT_ESET_H
#define FIRM_ADT_ESET_H
+#include <stddef.h>
+
#include "../begin.h"
/**
FIRM_API void eset_destroy(eset *s);
/** Returns the number of elements in the set. */
-FIRM_API int eset_count(eset *s);
+FIRM_API size_t eset_count(eset *s);
/** Inserts an address into the set. */
FIRM_API void eset_insert(eset *s, void *p);
/** Inserts all elements of source into target (union). Does NOT work if NULL is contained in source. */
FIRM_API void eset_insert_all(eset *target, eset *source);
+#define eset_foreach(eset, type, iter) \
+ for ((iter) = (type)eset_first((eset)); (iter) != NULL; (iter) = (type)eset_next((eset)))
+
#include "../end.h"
#endif