Hi.
Oh yes, Martin Sebor posted this patch a couple of weeks ago here -- this patch
fixes the ube assert problem, and you no longer need to pass
-D_RWSTD_NO_VECTOR_BOOL in 64-bit on AMD.
And i forgot to push the patch in svn, but i will do it today.
--Stefan
----
Lukas Oboril wrote:
> Hi Stefan
>
> i snip this patch from upstream... can you look at this
>
>
>
> --- STDCXX/4.1.3/include/vector (revision 378)
> +++ STDCXX/4.1.3/include/vector (working copy)
> @@ -858,10 +858,17 @@
> // On Sun, gcc 3.1 does generate an incorrect copy constructor
> // that has as an effect an incompletely/incorrectly initialized
> // iterator.
> -#if defined (__sun__) && defined (__GNUG__)
> +#if defined (__sun__) && defined (__GNUG__) \
> + || defined (__SUNPRO_CC) && defined (__amd64__)
> +
> + // working around a gcc 3.1 bug on Solaris where the compiler
> + // generates bad code for the implicitly defined copy ctor
> + // also working around a Sun C++ 5.9 optimizer ICE on x86_64
> + // in wide (64-bit) mode (see STDCXX-551)
> +
> _C_iter (const _C_iter& __it)
> : _C_p (__it._C_p), _C_offset (__it._C_offset) {}
> -#endif // __GNUG__
> +#endif // gcc 3.1/Solaris || Sun C++ 5.9/x86-64
>
> void operator++ () {
> if (_C_offset++ == _RWSTD_WORD_BIT - 1) {
>
>
>
>
--
Stefan Teleman
Sun Microsystems, Inc.
Stefan.Teleman at Sun.COM