Config: Exit with fatal if a port is already connected
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 23 May 2012 13:01:56 +0000 (09:01 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 23 May 2012 13:01:56 +0000 (09:01 -0400)
This patch turns the existing warning into a fatal, as there should
never be any cases where a (non-vector) port is assigned to and then
later connected to something else. If this behaviour is allowed, as it
used to be, there are cases where the wrong number of C++ ports are
created when instantiating objects with VectorPorts (obviously that
could be fixed, but the better approach is to simply not allow it).

src/python/m5/params.py

index f5af3a14b7c7da0260f4a79c1b42576ed63a0b30..b7fa607824819783b2e3c78e6d977a8a3e02cd6e 100644 (file)
@@ -1379,9 +1379,8 @@ class PortRef(object):
             # reference to plain VectorPort is implicit append
             other = other._get_next()
         if self.peer and not proxy.isproxy(self.peer):
-            print "warning: overwriting port", self, \
-                  "value", self.peer, "with", other
-            self.peer.peer = None
+            fatal("Port %s is already connected to %s, cannot connect %s\n",
+                  self, self.peer, other);
         self.peer = other
         if proxy.isproxy(other):
             other.set_param_desc(PortParamDesc())