helper function for creating unique identifiers
authorMatthias Braun <matze@braunis.de>
Wed, 2 Apr 2008 22:01:24 +0000 (22:01 +0000)
committerMatthias Braun <matze@braunis.de>
Wed, 2 Apr 2008 22:01:24 +0000 (22:01 +0000)
[r19078]

include/libfirm/ident.h
ir/ident/ident.c

index 9b877b9..b2a0f6e 100644 (file)
@@ -215,6 +215,12 @@ int id_is_suffix (ident *suffix, ident *id);
  */
 int id_contains_char (ident *id, char c);
 
+/**
+ * helper function for creating unique idents. It contains an internal counter
+ * and replaces a "%u" inside the tag with the counter.
+ */
+ident *id_unique(const char *tag);
+
 #ifdef FIRM_ENABLE_WCHAR
 /**
  *  Store a wide character string and create an ident.
index af6bc04..d239034 100644 (file)
@@ -337,6 +337,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)