From 90cf5bfbb1dfbaa8fc009b5cae382d9235898dd9 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Fri, 1 Jun 2018 15:29:00 +0200
Subject: [PATCH] fix bug in creation of auxiliary variables for unary ops

---
 src/ExprNode.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 14ed64a8..c98344c7 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -3211,7 +3211,7 @@ UnaryOpNode::substituteUnaryOpNodes(DataTree &static_datatree, diff_table_t &nod
           int symb_id = datatree.symbol_table.addUnaryOpAuxiliaryVar(this->idx, const_cast<UnaryOpNode *>(this),
                                                                                vn->get_symb_id(), vn->get_lag());
           aux_var = datatree.AddVariable(symb_id, 0);
-          neweqs.push_back(dynamic_cast<BinaryOpNode *>(datatree.AddEqual(aux_var, const_cast<UnaryOpNode *>(this))));
+          neweqs.push_back(dynamic_cast<BinaryOpNode *>(datatree.AddEqual(aux_var, dynamic_cast<UnaryOpNode *>(rit->second))));
           subst_table[rit->second] = dynamic_cast<VariableNode *>(aux_var);
         }
       else
-- 
GitLab