summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2012-05-23 09:01:56 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2012-05-23 09:01:56 -0400
commit31b4ac5cec638ee5a60e15fada85f5890300ec6a (patch)
tree4ddbc86cecd2b667e8b671367646c8fbaea59852
parent0bff8eb210fedd89baed36ecab3608bb259ff520 (diff)
downloadgem5-31b4ac5cec638ee5a60e15fada85f5890300ec6a.tar.xz
Config: Exit with fatal if a port is already connected
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).
-rw-r--r--src/python/m5/params.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index f5af3a14b..b7fa60782 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -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())