From 778295a2b07111801d4d099556926fe99d35f89c Mon Sep 17 00:00:00 2001
From: scott snyder <sss@karma>
Date: Sun, 3 Oct 2021 13:49:14 -0400
Subject: [PATCH] ExpressionEvaluator: Fix compilation warnings.

Don't rely on falling through between switch cases.
Unused function parameters.
---
 .../ExpressionEvaluator/ExprtkEvaluator.h     | 16 +++++++--------
 .../ExpressionEvaluator/IEvaluator.h          | 20 +++++++++----------
 .../ExpressionEvaluator/src/Evaluator.cxx     |  2 ++
 .../src/ExprtkEvaluator.cxx                   |  6 +++---
 4 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h
index b6502c733..cfb598083 100755
--- a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h
+++ b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h
@@ -57,21 +57,21 @@ public:
 
   void setVariable(const char * name, const char * expression);
 
-  void setFunction(const char * name, double (*fun)()) {;}
+  void setFunction(const char * /*name*/, double (*/*fun*/)()) {;}
 
   void setArray(const char * name, std::vector<double> array);
 
-  void setFunction(const char * name, double (*fun)(double)) {;}
+  void setFunction(const char * /*name*/, double (*/*fun*/)(double)) {;}
 
-  void setFunction(const char * name, double (*fun)(double,double)) {;}
+  void setFunction(const char * /*name*/, double (*/*fun*/)(double,double)) {;}
 
-  void setFunction(const char * name, double (*fun)(double,double,double)) {;}
+  void setFunction(const char * /*name*/, double (*/*fun*/)(double,double,double)) {;}
 
-  void setFunction(const char * name,
-		   double (*fun)(double,double,double,double)) {;}
+  void setFunction(const char * /*name*/,
+		   double (*/*fun*/)(double,double,double,double)) {;}
 
-  void setFunction(const char * name,
-                   double (*fun)(double,double,double,double,double)) {;}
+  void setFunction(const char * /*name*/,
+                   double (*/*fun*/)(double,double,double,double,double)) {;}
 
   bool findVariable(const char * name) const;
 
diff --git a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h
index 10c139250..82ed3b78a 100755
--- a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h
+++ b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h
@@ -35,27 +35,27 @@ class IEvaluator {
 
   virtual void setVariable(const char * name, const char * expression) = 0;
 
-  virtual void setFunction(const char * name, double (*fun)()) {;}
+  virtual void setFunction(const char * /*name*/, double (*/*fun*/)()) {;}
 
-  virtual void setFunction(const char * name, double (*fun)(double)) {;}
+  virtual void setFunction(const char * /*name*/, double (*/*fun*/)(double)) {;}
 
-  virtual void setFunction(const char * name, double (*fun)(double,double)) {;}
+  virtual void setFunction(const char * /*name*/, double (*/*fun*/)(double,double)) {;}
 
-  virtual void setFunction(const char * name, double (*fun)(double,double,double)) {;}
+  virtual void setFunction(const char * /*name*/, double (*/*fun*/)(double,double,double)) {;}
 
-  virtual void setFunction(const char * name,
-		   double (*fun)(double,double,double,double)) {;}
+  virtual void setFunction(const char * /*name*/,
+                           double (*/*fun*/)(double,double,double,double)) {;}
 
-  virtual void setFunction(const char * name,
-                   double (*fun)(double,double,double,double,double)) {;}
+  virtual void setFunction(const char * /*name*/,
+                           double (*/*fun*/)(double,double,double,double,double)) {;}
 
   virtual bool findVariable(const char * name) const =0;
 
   virtual bool findFunction(const char * name, int npar) const =0;
 
-  virtual void removeVariable(const char * name) {;}
+  virtual void removeVariable(const char * /*name*/) {;}
 
-  virtual void removeFunction(const char * name, int npar) {;}
+  virtual void removeFunction(const char * /*name*/, int /*npar*/) {;}
   
   virtual void clear() {;}
 
diff --git a/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx b/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx
index 85d782b56..9e3145d16 100755
--- a/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx
@@ -100,6 +100,7 @@ static int variable(const string & name, double & result,
     pchar exp_end   = exp_begin + strlen(exp_begin) - 1;
     if (engine(exp_begin, exp_end, result, exp_end, dictionary) == EVAL::OK)
       return EVAL::OK;
+    return EVAL::ERROR_CALCULATION_ERROR;
   }
   default:
     return EVAL::ERROR_CALCULATION_ERROR;
@@ -350,6 +351,7 @@ static int maker(int op, stack<double> & val)
     errno = 0;
     val.top() = std::pow(val1,val2);
     if (errno == 0) return EVAL::OK;
+    return EVAL::ERROR_CALCULATION_ERROR;
   case UNARY_PLUS:                              // unary operator '+'
     val.top() = val1 + val2;			// val1 is zero
     return EVAL::OK;
diff --git a/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx b/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx
index 66d05c5df..c28044b62 100755
--- a/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx
@@ -116,17 +116,17 @@ bool ExprtkEvaluator::findVariable(const char * name) const
   return (varMap.find(name)!=varMap.end());
 }
 
-bool ExprtkEvaluator::findFunction(const char * name, int npar) const
+bool ExprtkEvaluator::findFunction(const char * /*name*/, int /*npar*/) const
 {
   return true;
 }
 
-void ExprtkEvaluator::removeVariable(const char * name)
+void ExprtkEvaluator::removeVariable(const char * /*name*/)
 {
 
 }
 
-void ExprtkEvaluator::removeFunction(const char * name, int npar)
+void ExprtkEvaluator::removeFunction(const char * /*name*/, int /*npar*/)
 {
 
 }
-- 
GitLab