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


Reply via email to