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

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
This commit is contained in:
Paolo Carlini 2004-11-04 11:29:30 +00:00 committed by Paolo Carlini
parent ab3d104990
commit eba7452ba8
2 changed files with 11 additions and 2 deletions

View 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):

View 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;