summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2014-10-20 18:03:54 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2014-10-20 18:03:54 -0400
commit77f8f5d94cf9f2994f544dba14f4432ff4f3287f (patch)
tree56fb8725a2631755edc96a53f6fce0e95e1617b1 /src
parentb976496a347208dc00d5998a31f3833bce14e049 (diff)
downloadgem5-77f8f5d94cf9f2994f544dba14f4432ff4f3287f.tar.xz
base: Fix for stats node on gcc < 4.6.3
This patch adds an explicit function to get the underlying node as gcc 4.6.1 and 4.6.2 have issues otherwise.
Diffstat (limited to 'src')
-rw-r--r--src/base/statistics.cc6
-rw-r--r--src/base/statistics.hh5
2 files changed, 8 insertions, 3 deletions
diff --git a/src/base/statistics.cc b/src/base/statistics.cc
index 5ab837410..b63e69b68 100644
--- a/src/base/statistics.cc
+++ b/src/base/statistics.cc
@@ -379,7 +379,7 @@ Formula::Formula()
Formula::Formula(Temp r)
{
- root = r;
+ root = r.getNodePtr();
setInit();
assert(size());
}
@@ -388,7 +388,7 @@ const Formula &
Formula::operator=(Temp r)
{
assert(!root && "Can't change formulas");
- root = r;
+ root = r.getNodePtr();
setInit();
assert(size());
return *this;
@@ -400,7 +400,7 @@ Formula::operator+=(Temp r)
if (root)
root = NodePtr(new BinaryNode<std::plus<Result> >(root, r));
else {
- root = r;
+ root = r.getNodePtr();
setInit();
}
diff --git a/src/base/statistics.hh b/src/base/statistics.hh
index 658652f05..a21bf81d1 100644
--- a/src/base/statistics.hh
+++ b/src/base/statistics.hh
@@ -2999,6 +2999,11 @@ class Temp
*/
operator NodePtr&() { return node; }
+ /**
+ * Makde gcc < 4.6.3 happy and explicitly get the underlying node.
+ */
+ NodePtr getNodePtr() const { return node; }
+
public:
/**
* Create a new ScalarStatNode.