From 7bcabed20b264ad3359bb6462b15e65b2ad6acac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Mon, 20 Jun 2022 10:44:21 +0200
Subject: [PATCH] Bytecode: in FNUMEXPR, store lag as int rather than int8_t
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Otherwise lags are truncated at ±128.

(manually cherry picked from commit 4662a42c9ad2c90d921d0f72b307fd7bba29d627)
---
 src/CodeInterpreter.hh | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/CodeInterpreter.hh b/src/CodeInterpreter.hh
index 832c6e85..5045f577 100644
--- a/src/CodeInterpreter.hh
+++ b/src/CodeInterpreter.hh
@@ -1267,7 +1267,7 @@ class FNUMEXPR_ : public TagWithOneArgument<ExpressionType>
 private:
   unsigned int equation;
   uint16_t dvariable1, dvariable2, dvariable3;
-  int8_t lag1, lag2, lag3;
+  int lag1, lag2, lag3;
 public:
   inline
   FNUMEXPR_() : TagWithOneArgument<ExpressionType>::TagWithOneArgument{Tags::FNUMEXPR}
@@ -1294,7 +1294,7 @@ public:
     TagWithOneArgument<ExpressionType>::TagWithOneArgument{Tags::FNUMEXPR, expression_type},
     equation{equation_arg},
     dvariable1{static_cast<uint16_t>(dvariable1_arg)}, dvariable2{0}, dvariable3{0},
-    lag1{static_cast<int8_t>(lag1_arg)}, lag2{0}, lag3{0}
+    lag1{lag1_arg}, lag2{0}, lag3{0}
   {
   };
   inline
@@ -1314,8 +1314,8 @@ public:
     dvariable1{static_cast<uint16_t>(dvariable1_arg)},
     dvariable2{static_cast<uint16_t>(dvariable2_arg)},
     dvariable3{0},
-    lag1{static_cast<int8_t>(lag1_arg)},
-    lag2{static_cast<int8_t>(lag2_arg)},
+    lag1{lag1_arg},
+    lag2{lag2_arg},
     lag3{0}
   {
   };
@@ -1336,9 +1336,9 @@ public:
     dvariable1{static_cast<uint16_t>(dvariable1_arg)},
     dvariable2{static_cast<uint16_t>(dvariable2_arg)},
     dvariable3{static_cast<uint16_t>(dvariable3_arg)},
-    lag1{static_cast<int8_t>(lag1_arg)},
-    lag2{static_cast<int8_t>(lag2_arg)},
-    lag3{static_cast<int8_t>(lag3_arg)}
+    lag1{lag1_arg},
+    lag2{lag2_arg},
+    lag3{lag3_arg}
   {
   };
   inline ExpressionType
-- 
GitLab