diff options
Diffstat (limited to 'src/mem/slicc/ast/MemberExprAST.py')
-rw-r--r-- | src/mem/slicc/ast/MemberExprAST.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mem/slicc/ast/MemberExprAST.py b/src/mem/slicc/ast/MemberExprAST.py index 8f6b4a55c..a13205252 100644 --- a/src/mem/slicc/ast/MemberExprAST.py +++ b/src/mem/slicc/ast/MemberExprAST.py @@ -40,7 +40,12 @@ class MemberExprAST(ExprAST): def generate(self, code): return_type, gcode = self.expr_ast.inline(True) fix = code.nofix() - code("($gcode).m_${{self.field}}") + + if str(return_type) == "TBE" or ("interface" in return_type and return_type["interface"] == "AbstractCacheEntry"): + code("(*$gcode).m_${{self.field}}") + else: + code("($gcode).m_${{self.field}}") + code.fix(fix) # Verify that this is a valid field name for this type |