Mercurial > projects > ldc
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() {