* config/locale/c_locale_generic.cc: Check errno for ERANGE
authorljrittle <ljrittle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Jan 2002 00:47:05 +0000 (00:47 +0000)
committerljrittle <ljrittle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Jan 2002 00:47:05 +0000 (00:47 +0000)
instead of non-zero to aid portability.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49350 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/locale/c_locale_generic.cc

index cb3f92b..56bca71 100644 (file)
@@ -1,3 +1,8 @@
+2002-01-30  Loren Rittle <ljrittle@acm.org>
+
+       * config/locale/c_locale_generic.cc: Check errno for ERANGE
+       instead of non-zero to aid portability.
+
 2002-01-30  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
 
        * docs/html/22_locale/messages.html: Fix example code.
index 4a8770e..0d601ae 100644 (file)
@@ -48,7 +48,7 @@ namespace std
        char* __sanity;
        errno = 0;
        long __l = strtol(__s, &__sanity, __base);
-       if (__sanity != __s && *__sanity == '\0' && errno == 0)
+       if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
          __v = __l;
        else
          __err |= ios_base::failbit;
@@ -65,7 +65,7 @@ namespace std
          char* __sanity;
          errno = 0;
          unsigned long __ul = strtoul(__s, &__sanity, __base);
-          if (__sanity != __s && *__sanity == '\0' && errno == 0)
+          if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
            __v = __ul;
          else
            __err |= ios_base::failbit;
@@ -83,7 +83,7 @@ namespace std
          char* __sanity;
          errno = 0;
          long long __ll = strtoll(__s, &__sanity, __base);
-          if (__sanity != __s && *__sanity == '\0' && errno == 0)
+          if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
            __v = __ll;
          else
            __err |= ios_base::failbit;
@@ -100,7 +100,7 @@ namespace std
          char* __sanity;
          errno = 0;
          unsigned long long __ull = strtoull(__s, &__sanity, __base);
-          if (__sanity != __s && *__sanity == '\0' && errno == 0)
+          if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
            __v = __ull;
          else
            __err |= ios_base::failbit;
@@ -124,7 +124,7 @@ namespace std
 #else
          float __f = static_cast<float>(strtod(__s, &__sanity));
 #endif
-          if (__sanity != __s && *__sanity == '\0' && errno == 0)
+          if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
            __v = __f;
          else
            __err |= ios_base::failbit;
@@ -144,7 +144,7 @@ namespace std
          char* __sanity;
          errno = 0;
          double __d = strtod(__s, &__sanity);
-          if (__sanity != __s && *__sanity == '\0' && errno == 0)
+          if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
            __v = __d;
          else
            __err |= ios_base::failbit;
@@ -165,7 +165,7 @@ namespace std
          char* __sanity;
          errno = 0;
          long double __ld = strtold(__s, &__sanity);
-          if (__sanity != __s && *__sanity == '\0' && errno == 0)
+          if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
            __v = __ld;
 #else
          typedef char_traits<char>::int_type int_type;