From: Jan Hubicka Date: Fri, 24 Apr 2009 09:35:19 +0000 (+0200) Subject: array (at): Do not use builtin_expect. X-Git-Tag: releases/gcc-4.5.0~6217 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e762c6f4c649f2d59374e9b48702c80dbf49b652;p=thirdparty%2Fgcc.git array (at): Do not use builtin_expect. * include/tr1_impl/array (at): Do not use builtin_expect. * include/ext/throw_allocator.h (allocate): Likewise. * include/ext/pool_allocator.h (allocate): Likweise. * include/ext/bitmap_allocator.h (allocate): Likewise. * include/ext/rc_string_base.h (_S_construct): Likewise. * include/ext/malloc_allocator.h (allocate): Likewise. * include/ext/mt_allocator.h (allocate): Likewise. * include/ext/sso_string_base.h (_M_construct): Likewise. * include/bits/basic_string.tcc (_S_construct): Likewise. From-SVN: r146681 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b1695d7edaad..a3901bc54581 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,15 @@ +2009-04-22 Jan Hubicka + + * include/tr1_impl/array (at): Do not use builtin_expect. + * include/ext/throw_allocator.h (allocate): Likewise. + * include/ext/pool_allocator.h (allocate): Likweise. + * include/ext/bitmap_allocator.h (allocate): Likewise. + * include/ext/rc_string_base.h (_S_construct): Likewise. + * include/ext/malloc_allocator.h (allocate): Likewise. + * include/ext/mt_allocator.h (allocate): Likewise. + * include/ext/sso_string_base.h (_M_construct): Likewise. + * include/bits/basic_string.tcc (_S_construct): Likewise. + 2009-04-22 Jan Hubicka * include/c_std/cstdlib (abort, exit, _Exit): Mark noreturn throw (). diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc index a5553c61a1b1..ec771c66859f 100644 --- a/libstdc++-v3/include/bits/basic_string.tcc +++ b/libstdc++-v3/include/bits/basic_string.tcc @@ -129,8 +129,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) return _S_empty_rep()._M_refdata(); #endif // NB: Not required, but considered best practice. - if (__builtin_expect(__gnu_cxx::__is_null_pointer(__beg) - && __beg != __end, 0)) + if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) __throw_logic_error(__N("basic_string::_S_construct NULL not valid")); const size_type __dnew = static_cast(std::distance(__beg, diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h index e5bfa18ec5b2..f6790d000434 100644 --- a/libstdc++-v3/include/ext/bitmap_allocator.h +++ b/libstdc++-v3/include/ext/bitmap_allocator.h @@ -1049,7 +1049,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) pointer allocate(size_type __n) { - if (__builtin_expect(__n > this->max_size(), false)) + if (__n > this->max_size()) std::__throw_bad_alloc(); if (__builtin_expect(__n == 1, true)) diff --git a/libstdc++-v3/include/ext/malloc_allocator.h b/libstdc++-v3/include/ext/malloc_allocator.h index 4c4a72a171c4..b432c63a61ea 100644 --- a/libstdc++-v3/include/ext/malloc_allocator.h +++ b/libstdc++-v3/include/ext/malloc_allocator.h @@ -84,7 +84,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) pointer allocate(size_type __n, const void* = 0) { - if (__builtin_expect(__n > this->max_size(), false)) + if (__n > this->max_size()) std::__throw_bad_alloc(); pointer __ret = static_cast<_Tp*>(std::malloc(__n * sizeof(_Tp))); diff --git a/libstdc++-v3/include/ext/mt_allocator.h b/libstdc++-v3/include/ext/mt_allocator.h index fc31fe8a737a..e44b98d4bf70 100644 --- a/libstdc++-v3/include/ext/mt_allocator.h +++ b/libstdc++-v3/include/ext/mt_allocator.h @@ -674,7 +674,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) __mt_alloc<_Tp, _Poolp>:: allocate(size_type __n, const void*) { - if (__builtin_expect(__n > this->max_size(), false)) + if (__n > this->max_size()) std::__throw_bad_alloc(); __policy_type::_S_initialize_once(); diff --git a/libstdc++-v3/include/ext/new_allocator.h b/libstdc++-v3/include/ext/new_allocator.h index 290c73a11c2a..51666c3c7fde 100644 --- a/libstdc++-v3/include/ext/new_allocator.h +++ b/libstdc++-v3/include/ext/new_allocator.h @@ -83,7 +83,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) pointer allocate(size_type __n, const void* = 0) { - if (__builtin_expect(__n > this->max_size(), false)) + if (__n > this->max_size()) std::__throw_bad_alloc(); return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); diff --git a/libstdc++-v3/include/ext/pool_allocator.h b/libstdc++-v3/include/ext/pool_allocator.h index d7077b1986b6..b1e61841c0a7 100644 --- a/libstdc++-v3/include/ext/pool_allocator.h +++ b/libstdc++-v3/include/ext/pool_allocator.h @@ -200,7 +200,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) pointer __ret = 0; if (__builtin_expect(__n != 0, true)) { - if (__builtin_expect(__n > this->max_size(), false)) + if (__n > this->max_size()) std::__throw_bad_alloc(); // If there is a race through here, assume answer from getenv @@ -230,7 +230,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *__free_list = __result->_M_free_list_link; __ret = reinterpret_cast<_Tp*>(__result); } - if (__builtin_expect(__ret == 0, 0)) + if (__ret == 0) std::__throw_bad_alloc(); } } diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h index dce5e06710c4..6d8c430d5750 100644 --- a/libstdc++-v3/include/ext/rc_string_base.h +++ b/libstdc++-v3/include/ext/rc_string_base.h @@ -546,7 +546,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) return _S_empty_rep._M_refcopy(); // NB: Not required, but considered best practice. - if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0)) + if (__is_null_pointer(__beg) && __beg != __end) std::__throw_logic_error(__N("__rc_string_base::" "_S_construct NULL not valid")); diff --git a/libstdc++-v3/include/ext/sso_string_base.h b/libstdc++-v3/include/ext/sso_string_base.h index 85a0d7c9b180..6d2af7c46dd6 100644 --- a/libstdc++-v3/include/ext/sso_string_base.h +++ b/libstdc++-v3/include/ext/sso_string_base.h @@ -428,7 +428,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) std::forward_iterator_tag) { // NB: Not required, but considered best practice. - if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0)) + if (__is_null_pointer(__beg) && __beg != __end) std::__throw_logic_error(__N("__sso_string_base::" "_M_construct NULL not valid")); diff --git a/libstdc++-v3/include/ext/throw_allocator.h b/libstdc++-v3/include/ext/throw_allocator.h index c87408fd9311..130305469435 100644 --- a/libstdc++-v3/include/ext/throw_allocator.h +++ b/libstdc++-v3/include/ext/throw_allocator.h @@ -220,7 +220,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) pointer allocate(size_type __n, std::allocator::const_pointer hint = 0) { - if (__builtin_expect(__n > this->max_size(), false)) + if (__n > this->max_size()) std::__throw_bad_alloc(); throw_conditionally(); diff --git a/libstdc++-v3/include/tr1_impl/array b/libstdc++-v3/include/tr1_impl/array index c0bd24076fa2..7cd3db3d0f90 100644 --- a/libstdc++-v3/include/tr1_impl/array +++ b/libstdc++-v3/include/tr1_impl/array @@ -149,7 +149,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 reference at(size_type __n) { - if (__builtin_expect(__n >= _Nm, false)) + if (__n >= _Nm) std::__throw_out_of_range(__N("array::at")); return _M_instance[__n]; } @@ -157,7 +157,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 const_reference at(size_type __n) const { - if (__builtin_expect(__n >= _Nm, false)) + if (__n >= _Nm) std::__throw_out_of_range(__N("array::at")); return _M_instance[__n]; }