From db3ef925a7f60fca8bc161161637206dcd41778f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Fri, 11 Sep 2020 16:56:14 +0200
Subject: [PATCH] Fix handling of diffLead in
 SymbolTable::getOrigLeadLagForDiffAuxVar()

---
 src/SymbolTable.cc | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index 936a253a..68a0bc64 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -718,12 +718,11 @@ SymbolTable::getOrigSymbIdForAuxVar(int aux_var_symb_id) const noexcept(false)
 int
 SymbolTable::getOrigLeadLagForDiffAuxVar(int diff_aux_var_symb_id) const noexcept(false)
 {
-  int lag = 0;
   for (const auto &aux_var : aux_vars)
     if ((aux_var.get_type() == AuxVarType::diffLag || aux_var.get_type() == AuxVarType::diffLead)
         && aux_var.get_symb_id() == diff_aux_var_symb_id)
-      lag += 1 + getOrigLeadLagForDiffAuxVar(aux_var.get_orig_symb_id());
-  return lag;
+      return (aux_var.get_type() == AuxVarType::diffLag ? 1 : -1) + getOrigLeadLagForDiffAuxVar(aux_var.get_orig_symb_id());
+  return 0;
 }
 
 int
-- 
GitLab