imported patch jason/slicc-external-structure-fix
authorBrad Beckmann <Brad.Beckmann@amd.com>
Wed, 11 Jul 2012 05:51:54 +0000 (22:51 -0700)
committerBrad Beckmann <Brad.Beckmann@amd.com>
Wed, 11 Jul 2012 05:51:54 +0000 (22:51 -0700)
src/mem/slicc/ast/AssignStatementAST.py
src/mem/slicc/ast/FuncCallExprAST.py

index 3c3426f5b0c58a356bc37ec5992641626bc74625..042204925b3ab27f7fac8adfd14547f775f24472 100644 (file)
@@ -45,7 +45,7 @@ class AssignStatementAST(StatementAST):
 
         code("$lcode = $rcode;")
 
-        if ltype != rtype:
+        if not (ltype == rtype or (ltype.isInterface and ltype['interface'] == rtype.ident)):
             # FIXME - beckmann
             # the following if statement is a hack to allow NetDest
             # objects to be assigned to Sets this allows for the
index 75ec12344cd34658729726ee6311c7df54a10dfe..3747d0dfdd350c729a97780e2a820eaad4f956e5 100644 (file)
@@ -93,7 +93,7 @@ class FuncCallExprAST(ExprAST):
         for expr,expected_type in zip(self.exprs, func.param_types):
             # Check the types of the parameter
             actual_type,param_code = expr.inline(True)
-            if actual_type != expected_type:
+            if str(actual_type) != str(expected_type):
                 expr.error("Type mismatch: expected: %s actual: %s" % \
                            (expected_type, actual_type))
             cvec.append(param_code)