re PR libstdc++/54612 (Many failures in ext/random testsuite)

2012-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/54612
	* include/ext/random.tcc (operator==
	(const __gnu_cxx::simd_fast_mersenne_twister_engine<>&,
	const __gnu_cxx::simd_fast_mersenne_twister_engine<>&)): Fix
	state_size use.
	* config/cpu/i486/opt/ext/opt_random.h: Guard with __SSE2__.

From-SVN: r191424
This commit is contained in:
Paolo Carlini 2012-09-18 14:02:20 +00:00 committed by Paolo Carlini
parent 1d61ee4252
commit ecfce0b850
3 changed files with 17 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2012-09-18 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/54612
* include/ext/random.tcc (operator==
(const __gnu_cxx::simd_fast_mersenne_twister_engine<>&,
const __gnu_cxx::simd_fast_mersenne_twister_engine<>&)): Fix
state_size use.
* config/cpu/i486/opt/ext/opt_random.h: Guard with __SSE2__.
2012-09-17 Ulrich Drepper <drepper@gmail.com>
* configure.ac: Substitute CPU_OPT_EXT_RANDOM.

View File

@ -32,6 +32,7 @@
#pragma GCC system_header
#ifdef __SSE2__
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
@ -130,5 +131,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
#endif // __SSE2__
#endif // _EXT_OPT_RANDOM_H

View File

@ -328,7 +328,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__msk1, __msk2, __msk3, __msk4,
__parity1, __parity2, __parity3, __parity4>& __rhs)
{
return (std::equal(__lhs._M_stateT, __lhs._M_stateT + state_size,
typedef __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
__m, __pos1, __sl1, __sl2, __sr1, __sr2,
__msk1, __msk2, __msk3, __msk4,
__parity1, __parity2, __parity3, __parity4> __engine;
return (std::equal(__lhs._M_stateT,
__lhs._M_stateT + __engine::state_size,
__rhs._M_stateT)
&& __lhs._M_pos == __rhs._M_pos);
}