]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
locale_facets.tcc (num_get<>::do_get(bool&)): Evaluate __beg == __end the exact stric...
authorPaolo Carlini <pcarlini@suse.de>
Thu, 4 Nov 2004 11:29:30 +0000 (11:29 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Thu, 4 Nov 2004 11:29:30 +0000 (11:29 +0000)
2004-11-04  Paolo Carlini  <pcarlini@suse.de>

* include/bits/locale_facets.tcc (num_get<>::do_get(bool&)):
Evaluate __beg == __end the exact strict minimum number of times.

From-SVN: r90058

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/locale_facets.tcc

index 6848060c05a6ab92c6435b434982a0fda3eda9be..719bd39b635a3762cb989b6dde37a3a382acb867 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-04  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/locale_facets.tcc (num_get<>::do_get(bool&)):
+       Evaluate __beg == __end the exact strict minimum number of times.
+
 2004-11-03  Jonathan Wakely  <redi@gcc.gnu.org>
 
        * include/bits/stl_numeric.h (partial_sum, adjacent_difference):
index c32a65da765e66cbd351404b582f13c64f80a14f..41778bca710cbc4b3ba4deeb1fb469d2d7c0d562 100644 (file)
@@ -687,7 +687,8 @@ namespace std
          bool __testf = true;
          bool __testt = true;
          size_t __n;
-          for (__n = 0; __beg != __end; ++__n, ++__beg)
+         bool __testeof = __beg == __end;
+          for (__n = 0; !__testeof; ++__n)
             {
              const char_type __c = *__beg;
 
@@ -705,6 +706,9 @@ namespace std
 
              if (!__testf && !__testt)
                break;
+             
+             if (++__beg == __end)
+               __testeof = true;
             }
          if (__testf && __n == __lc->_M_falsename_size)
            __v = 0;
@@ -713,7 +717,7 @@ namespace std
          else
            __err |= ios_base::failbit;
 
-          if (__beg == __end)
+          if (__testeof)
             __err |= ios_base::eofbit;
         }
       return __beg;