diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2014-10-20 18:03:54 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2014-10-20 18:03:54 -0400 |
commit | 77f8f5d94cf9f2994f544dba14f4432ff4f3287f (patch) | |
tree | 56fb8725a2631755edc96a53f6fce0e95e1617b1 /src | |
parent | b976496a347208dc00d5998a31f3833bce14e049 (diff) | |
download | gem5-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.cc | 6 | ||||
-rw-r--r-- | src/base/statistics.hh | 5 |
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. |