From f06a89697d5f517ca74e8e5e722a94df978c8ba5 Mon Sep 17 00:00:00 2001
From: sebastien <sebastien@ac1d8469-bf42-47a9-8791-bf33cf982152>
Date: Thu, 7 May 2009 08:50:59 +0000
Subject: [PATCH] trunk preprocessor: * change the way we check for success of
 strtod() in NumericalConstants::AddConstant, because of Windows compatibility
 problem * reverted r2660 changeset

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2661 ac1d8469-bf42-47a9-8791-bf33cf982152
---
 preprocessor/Makefile.in           | 2 +-
 preprocessor/NumericalConstants.cc | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/preprocessor/Makefile.in b/preprocessor/Makefile.in
index 3b8a435137..2fc4d8ec29 100644
--- a/preprocessor/Makefile.in
+++ b/preprocessor/Makefile.in
@@ -1,6 +1,6 @@
 CXX = @CXX@
 CXXFLAGS = @CXXFLAGS@
-CPPFLAGS = -DNDEBUG @CPPFLAGS@ @DEFS@
+CPPFLAGS = @CPPFLAGS@ @DEFS@
 LDFLAGS = @LDFLAGS@
 
 FLEX = @FLEX@
diff --git a/preprocessor/NumericalConstants.cc b/preprocessor/NumericalConstants.cc
index de53e4a03d..e27ce1c175 100644
--- a/preprocessor/NumericalConstants.cc
+++ b/preprocessor/NumericalConstants.cc
@@ -19,6 +19,7 @@
 
 #include <cstdlib>
 #include <cassert>
+#include <cerrno>
 #include <cmath>
 #include <iostream>
 
@@ -36,9 +37,9 @@ NumericalConstants::AddConstant(const string &iConst)
   mNumericalConstants.push_back(iConst);
   numConstantsIndex[iConst] = id;
 
-  char *endptr;
-  double val = strtod(iConst.c_str(), &endptr);
-  assert(endptr != iConst.c_str()); // Check that the conversion succeeded
+  errno = 0;
+  double val = strtod(iConst.c_str(), NULL);
+  assert(errno == 0); // Check that the conversion succeeded
   assert(val >= 0 || isnan(val)); // Check we have a positive constant or a NaN
   double_vals.push_back(val);
 
-- 
GitLab