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;