This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] proposed fix for libstdc++/59829


Hi,

> On 27/gen/2014, at 20:38, Jonathan Wakely <jwakely@redhat.com> wrote:
> 
> This is the best I've come up with to avoid dereferencing an invalid
> pointer when calling vector::data() on an empty vector.
> 
> For C++03 we reurn the vector's pointer type, so can just return the
> internal pointer, but for C++11 we need to convert that to a raw
> pointer, which we do by dereferencing, so we must check if it's valid
> first.
> 
> Any better suggestions before I commit this?

I'm going to say something quite obvious - in principle the C++11 version could become identical at compile time to the simpler C++03 version depending on the types. Not sure if it's worth it, avoiding the conditional operator at run-time... Maybe libc++ does something similar, if I remember correctly Howard's distaste for branches ;)

Paolo



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]