X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fident%2Fident.c;h=47838da79d691e2a6a6c61ac42cd671928858e99;hb=45ecc187cee7107c83c1f9618a1e1e586df73644;hp=efd3a0a0742700ec9124dfff7d4f1563e5741fc3;hpb=fc16f16a6846ae896c844a17cd3409faaf4a651d;p=libfirm diff --git a/ir/ident/ident.c b/ir/ident/ident.c index efd3a0a07..47838da79 100644 --- a/ir/ident/ident.c +++ b/ir/ident/ident.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -95,6 +96,7 @@ static ident *set_new_id_from_str(void *handle, const char *str) static const char *set_get_id_str(void *handle, ident *id) { struct set_entry *entry = (struct set_entry *)id; + (void) handle; return (const char *)entry->dptr; } @@ -110,6 +112,7 @@ static const char *set_get_id_str(void *handle, ident *id) static int set_get_id_strlen(void *handle, ident *id) { struct set_entry *entry = (struct set_entry *)id; + (void) handle; return entry->size; } @@ -279,6 +282,7 @@ void init_ident(ident_if_t *id_if, int initial_n_idents) impl.get_id_wcslen = set_get_id_wcslen; #endif /* FIRM_ENABLE_WCHAR */ + /* it's ok to use memcmp here, we check only strings */ impl.handle = new_set(memcmp, initial_n_idents); } } @@ -335,6 +339,16 @@ int id_contains_char(ident *id, char c) return strchr(get_id_str(id), c) != NULL; } +ident *id_unique(const char *tag) +{ + static unsigned unique_id = 0; + char buf[256]; + + snprintf(buf, sizeof(buf), tag, unique_id); + unique_id++; + return new_id_from_str(buf); +} + #ifdef FIRM_ENABLE_WCHAR ident *new_id_from_wcs (const wchar_t *str)