Mercurial > projects > ldc
changeset 1624:ae8a94d87ca9
Merge DMD r318: bugzilla 2029 Typesafe variadic functions don't...
bugzilla 2029 Typesafe variadic functions don't work in CTFE.
---
dmd/aggregate.h | 1 +
dmd/struct.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 0 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:22 -0300 |
parents | 1d48eced441f |
children | 79f64d5fee9e |
files | dmd/aggregate.h dmd/struct.c |
diffstat | 2 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/dmd/aggregate.h Wed Jan 06 15:18:22 2010 -0300 +++ b/dmd/aggregate.h Wed Jan 06 15:18:22 2010 -0300 @@ -150,6 +150,7 @@ StructDeclaration(Loc loc, Identifier *id); Dsymbol *syntaxCopy(Dsymbol *s); void semantic(Scope *sc); + Dsymbol *search(Loc, Identifier *ident, int flags); void toCBuffer(OutBuffer *buf, HdrGenState *hgs); char *mangle(); const char *kind();
--- a/dmd/struct.c Wed Jan 06 15:18:22 2010 -0300 +++ b/dmd/struct.c Wed Jan 06 15:18:22 2010 -0300 @@ -460,6 +460,22 @@ } } +Dsymbol *StructDeclaration::search(Loc loc, Identifier *ident, int flags) +{ + //printf("%s.StructDeclaration::search('%s')\n", toChars(), ident->toChars()); + + if (scope) + semantic(scope); + + if (!members || !symtab) + { + error("is forward referenced when looking for '%s'", ident->toChars()); + return NULL; + } + + return ScopeDsymbol::search(loc, ident, flags); +} + void StructDeclaration::toCBuffer(OutBuffer *buf, HdrGenState *hgs) { int i;