Mercurial > projects > ldc
comparison dmd/enum.c @ 1628:6c36e3f49b28
Merge DMD r324: bugzilla 3663 and 3664 - fwd ref regressions
---
dmd/class.c | 2 +-
dmd/enum.c | 4 +++-
dmd/enum.h | 2 ++
dmd/mars.c | 2 +-
dmd/struct.c | 5 ++++-
5 files changed, 11 insertions(+), 4 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:23 -0300 |
parents | 1d48eced441f |
children | 44b145be2ef5 |
comparison
equal
deleted
inserted
replaced
1627:e83f0778c260 | 1628:6c36e3f49b28 |
---|---|
59 //printf("EnumDeclaration::semantic(sd = %p, '%s')\n", sc->scopesym, sc->scopesym->toChars()); | 59 //printf("EnumDeclaration::semantic(sd = %p, '%s')\n", sc->scopesym, sc->scopesym->toChars()); |
60 if (!memtype) | 60 if (!memtype) |
61 memtype = Type::tint32; | 61 memtype = Type::tint32; |
62 | 62 |
63 if (symtab) // if already done | 63 if (symtab) // if already done |
64 { if (!scope) | 64 { if (isdone || !scope) |
65 return; // semantic() already completed | 65 return; // semantic() already completed |
66 } | 66 } |
67 else | 67 else |
68 symtab = new DsymbolTable(); | 68 symtab = new DsymbolTable(); |
69 | 69 |
93 | 93 |
94 if (!memtype->isintegral()) | 94 if (!memtype->isintegral()) |
95 { error("base type must be of integral type, not %s", memtype->toChars()); | 95 { error("base type must be of integral type, not %s", memtype->toChars()); |
96 memtype = Type::tint32; | 96 memtype = Type::tint32; |
97 } | 97 } |
98 | |
99 isdone = 1; | |
98 | 100 |
99 t = isAnonymous() ? memtype : type; | 101 t = isAnonymous() ? memtype : type; |
100 symtab = new DsymbolTable(); | 102 symtab = new DsymbolTable(); |
101 sce = sc->push(this); | 103 sce = sc->push(this); |
102 sce->parent = this; | 104 sce->parent = this; |