summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/base')
-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.