From f439f866881465e0e43cd56e885973179d95f52c Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Wed, 28 Feb 2018 10:44:24 +0100
Subject: [PATCH] fix bug with the collection of dynamic variables for diff
 operator

---
 src/ExprNode.cc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index cb6c94dc..5ed78458 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -2521,7 +2521,10 @@ UnaryOpNode::compile(ostream &CompileCode, unsigned int &instruction_number,
 void
 UnaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
-  arg->collectDynamicVariables(type_arg, result);
+  if (op_code == oDiff)
+    arg->decreaseLeadsLags(1)->collectDynamicVariables(type_arg, result);
+  else
+    arg->collectDynamicVariables(type_arg, result);
 }
 
 pair<int, expr_t>
-- 
GitLab