[libstdc++ patch] Fix basic_string::_S_construct null pointer check

Paolo Carlini pcarlini@unitus.it
Mon Jul 14 18:53:00 GMT 2003


Doug Gregor wrote:

> basic_string::_S_construct attempts to do a null-pointer check by 
> comparing the "__beg" iterator to a default-constructed iterator of 
> the same type. This both triggers an error in debug mode ("attempt to 
> compare against a singular iterator") and could cause incorrect 
> behavior in release mode in the following unlikely circumstance:
>
>     1) [begin, end) is an empty iterator range, and
>     2) end is equal to a default-constructed iterator, and
>     3) the user passes in an allocator that is not equivalent to a 
> default-constructed allocator

Nathan, you already investigated the issue: do you consider this the 
most correct fix?

Thanks,
Paolo.



More information about the Libstdc++ mailing list