diff -r 249cacaa1d02 -r d0e52637c510 src/mem/slicc/symbols/Type.py --- a/src/mem/slicc/symbols/Type.py Tue Sep 01 19:49:13 2015 -0500 +++ b/src/mem/slicc/symbols/Type.py Tue Sep 01 19:50:52 2015 -0500 @@ -31,11 +31,11 @@ from slicc.symbols.Symbol import Symbol from slicc.symbols.Var import Var -class DataMember(PairContainer): - def __init__(self, ident, type, pairs, init_code): - super(DataMember, self).__init__(pairs) - self.ident = ident - self.type = type +class DataMember(Var): + def __init__(self, symtab, ident, location, type, pointer, code, pairs, + machine, init_code): + super(DataMember, self).__init__(symtab, ident, location, type, + pointer, code, pairs, machine) self.init_code = init_code class Enumeration(PairContainer): @@ -126,12 +126,11 @@ if ident in self.data_members: return False - member = DataMember(ident, type, pairs, init_code) + member = DataMember(self.symtab, ident, self.location, type, pointer, + "m_%s" % ident, pairs, None, init_code) + self.data_members[ident] = member - - var = Var(self.symtab, ident, self.location, type, pointer, - "m_%s" % ident, {}, None) - self.symtab.registerSym(ident, var) + self.symtab.registerSym(ident, member) return True def dataMemberType(self, ident):