diff dmd/mangle.c @ 321:571959608194 trunk

[svn r342] Fix DMD bug 2206. Implement mixin declarations in LLVMDC.
author ChristianK
date Wed, 09 Jul 2008 17:01:08 +0200
parents 2b72433d5c8c
children 55f6c2e454d7
line wrap: on
line diff
--- a/dmd/mangle.c	Sat Jul 05 13:05:29 2008 +0200
+++ b/dmd/mangle.c	Wed Jul 09 17:01:08 2008 +0200
@@ -221,6 +221,31 @@
 }
 
 
+char *TemplateMixin::mangle()
+{
+    OutBuffer buf;
+    char *id;
+
+#if 0
+    printf("TemplateMixin::mangle() %s", toChars());
+    if (parent)
+        printf("  parent = %s %s", parent->kind(), parent->toChars());
+    printf("\n");
+#endif
+    id = ident ? ident->toChars() : toChars();
+    if (parent)
+    {
+	char *p = parent->mangle();
+	if (p[0] == '_' && p[1] == 'D')
+	    p += 2;
+	buf.writestring(p);
+    }
+    buf.printf("%"PRIuSIZE"%s", strlen(id), id);
+    id = buf.toChars();
+    buf.data = NULL;
+    //printf("TemplateMixin::mangle() %s = %s\n", toChars(), id);
+    return id;
+}
 
 char *Dsymbol::mangle()
 {