compileable with -Wall and bugfixing
[libfirm] / ir / tr / mangle.c
index 7706b0f..d1210db 100644 (file)
@@ -5,10 +5,13 @@
 **
 */
 
+/* $Id$ */
+
 #ifdef HAVE_CONFIG_H
 # include <config.h>
 #endif
 
+# include "xprintf.h"
 # include "mangle.h"
 # include <obstack.h>
 # include "obst.h"
@@ -47,7 +50,7 @@ mangle_type (type *type)
   ident *res;
 
   assert (type->kind == k_type);
-  assert (type->type_op->code == tpo_class);
+  /* assert (type->type_op->code == tpo_class); */
 
   xoprintf (&mangle_obst, "%I", type->name);
   len = obstack_object_size (&mangle_obst);
@@ -57,6 +60,34 @@ mangle_type (type *type)
   return res;
 }
 
+/* Returns a new ident that represents firstscnd. */
+ident *mangle (ident *first, ident* scnd) {
+  char *cp;
+  int len;
+  ident *res;
+
+  xoprintf (&mangle_obst, "%I%I",  first, scnd);
+  len = obstack_object_size (&mangle_obst);
+  cp = obstack_finish (&mangle_obst);
+  res = id_from_str (cp, len);
+  obstack_free (&mangle_obst, cp);
+  return res;
+}
+
+/* Returns a new ident that represents first_scnd. */
+ident *mangle_u (ident *first, ident* scnd) {
+  char *cp;
+  int len;
+  ident *res;
+
+  xoprintf (&mangle_obst, "%I_%I",  first, scnd);
+  len = obstack_object_size (&mangle_obst);
+  cp = obstack_finish (&mangle_obst);
+  res = id_from_str (cp, len);
+  obstack_free (&mangle_obst, cp);
+  return res;
+}
+
 
 void
 init_mangle (void)