From ac850f5187da8ef4c22440fd2eb50c6a403a7ca3 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Mon, 13 Aug 2018 17:22:28 +0200
Subject: [PATCH] pac: stop processing of PAC equation if optimizing share
 parameter is hard-coded

---
 src/ExprNode.cc | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 39dce9ac..d2c25c62 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -5264,6 +5264,15 @@ BinaryOpNode::getPacOptimizingShareAndExprNodes(set<int> &optim_share,
       set<int> params1, params2;
       arg1->collectVariables(SymbolType::parameter, params1);
       arg2->collectVariables(SymbolType::parameter, params2);
+
+      if (dynamic_cast<NumConstNode *>(arg1) != nullptr
+          || dynamic_cast<NumConstNode *>(arg2) != nullptr)
+        {
+          cerr << "Error: Please do not use hard-coded parameter values in the PAC equation"
+               << endl;
+          exit(EXIT_FAILURE);
+        }
+
       if (optim_part == nullptr)
         if (test_arg1 != nullptr || test_arg2 != nullptr)
           if (params1.size() == 1 || params2.size() == 1)
-- 
GitLab