locale_facets.tcc (num_get::_M_extract_int): Slightly streamline the code dealing with overflows and the parsing of the sign.

2003-12-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_get::_M_extract_int):
	Slightly streamline the code dealing with overflows and the
	parsing of the sign.

From-SVN: r74476
This commit is contained in:
Paolo Carlini 2003-12-09 20:02:58 +00:00 committed by Paolo Carlini
parent 579ed98749
commit 1f3adac20c
2 changed files with 13 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2003-12-09 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_get::_M_extract_int):
Slightly streamline the code dealing with overflows and the
parsing of the sign.
2003-12-09 Bernardo Innocenti <bernie@develer.com>
* include/ext/algorithm, include/ext/debug_allocator.h,

View File

@ -283,9 +283,9 @@ namespace std
bool __negative = false;
if (__beg != __end)
{
__negative = __traits_type::eq(*__beg, __lit[_S_iminus]);
if (__negative && numeric_limits<_ValueT>::is_signed
|| __traits_type::eq(*__beg, __lit[_S_iplus]))
if (numeric_limits<_ValueT>::is_signed)
__negative = __traits_type::eq(*__beg, __lit[_S_iminus]);
if (__negative || __traits_type::eq(*__beg, __lit[_S_iplus]))
++__beg;
}
@ -353,8 +353,7 @@ namespace std
else
{
const _ValueT __new_result = __result * __base - __digit;
if (__result)
__overflow |= __new_result >= __result;
__overflow |= __new_result > __result;
__result = __new_result;
++__sep_pos;
__found_num = true;
@ -398,8 +397,7 @@ namespace std
else
{
const _ValueT __new_result = __result * __base + __digit;
if (__result)
__overflow |= __new_result <= __result;
__overflow |= __new_result < __result;
__result = __new_result;
++__sep_pos;
__found_num = true;
@ -436,8 +434,8 @@ namespace std
__err |= ios_base::failbit;
}
if (!(__err & ios_base::failbit)
&& !__overflow && __found_num)
if (!(__err & ios_base::failbit) && !__overflow
&& __found_num)
__v = __result;
else
__err |= ios_base::failbit;