17#define ISL_xCAT(A,B) A ## B
18#define ISL_CAT(A,B) ISL_xCAT(A,B)
19#define ISL_xFN(TYPE,NAME) TYPE ## _ ## NAME
20#define ISL_FN(TYPE,NAME) ISL_xFN(TYPE,NAME)
21#define ISL_xS(TYPE1,TYPE2,NAME) struct isl_ ## TYPE1 ## _ ## TYPE2 ## _ ## NAME
22#define ISL_yS(TYPE1,TYPE2,NAME) ISL_xS(TYPE1,TYPE2,NAME)
23#define ISL_S(NAME) ISL_yS(ISL_KEY,ISL_VAL,NAME)
56 ISL_S(pair) *pair = *entry;
134 const ISL_S(pair) *pair = entry;
341 ISL_S(pair) *pair = *entry;
380 ISL_S(pair) *pair = *entry;
383 return data->test(pair->key, pair->val,
data->test_user);
402#ifdef ISL_HMAP_IS_EQUAL
414 if (maybe_val.valid < 0 || !maybe_val.valid)
415 return maybe_val.valid;
430 if (!hmap1 || !hmap2)
434 if (hmap1->table.n != hmap2->table.n)
522#ifdef ISL_HMAP_HAVE_READ_FROM_STR
#define isl_calloc_type(ctx, type)
#define isl_die(ctx, errno, msg, code)
void isl_ctx_deref(struct isl_ctx *ctx)
#define isl_alloc_type(ctx, type)
void isl_ctx_ref(struct isl_ctx *ctx)
void isl_hash_table_clear(struct isl_hash_table *table)
isl_bool isl_hash_table_every(isl_ctx *ctx, struct isl_hash_table *table, isl_bool(*test)(void **entry, void *user), void *user)
struct isl_hash_table_entry * isl_hash_table_entry_none
int isl_hash_table_init(struct isl_ctx *ctx, struct isl_hash_table *table, int min_size)
void isl_hash_table_remove(struct isl_ctx *ctx, struct isl_hash_table *table, struct isl_hash_table_entry *entry)
isl_stat isl_hash_table_foreach(isl_ctx *ctx, struct isl_hash_table *table, isl_stat(*fn)(void **entry, void *user), void *user)
struct isl_hash_table_entry * isl_hash_table_find(struct isl_ctx *ctx, struct isl_hash_table *table, uint32_t key_hash, isl_bool(*eq)(const void *entry, const void *val), const void *val, int reserve)
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
isl_bool __isl_keep ISL_KEY * key
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
__isl_give isl_printer __isl_keep ISL_HMAP * hmap
isl_stat isl_stat(*) void user)
__isl_constructor __isl_give ISL_HMAP int min_size
__isl_give try_get(__isl_keep ISL_HMAP *hmap, __isl_keep ISL_KEY *key)
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
static isl_stat add_key_val(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
#define ISL_FN(TYPE, NAME)
static isl_stat call_on_copy(void **entry, void *user)
static isl_bool call_on_pair(void **entry, void *user)
static isl_stat print_pair(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
static isl_stat free_pair(void **entry, void *user)
static isl_bool has_key(const void *entry, const void *c_key)
#define ISL_HMAP_IS_EQUAL
static void drop(struct isl_coalesce_info *info)
__isl_give dup(__isl_keep LIST(EL) *list)
static void test_user(isl::ctx ctx)
__isl_null isl_printer * isl_printer_free(__isl_take isl_printer *printer)
__isl_give char * isl_printer_get_str(__isl_keep isl_printer *printer)
__isl_give isl_printer * isl_printer_to_file(isl_ctx *ctx, FILE *file)
__isl_give isl_printer * isl_printer_print_str(__isl_take isl_printer *p, const char *s)
__isl_give isl_printer * isl_printer_to_str(isl_ctx *ctx)
__isl_give isl_printer * isl_printer_end_line(__isl_take isl_printer *p)
isl_ctx * isl_stream_get_ctx(__isl_keep isl_stream *s)
int isl_stream_eat(__isl_keep isl_stream *s, int type)
void isl_stream_free(__isl_take isl_stream *s)
__isl_give isl_stream * isl_stream_new_str(isl_ctx *ctx, const char *str)
int isl_stream_eat_if_available(__isl_keep isl_stream *s, int type)
struct isl_hash_table table