_FORTIFY_SOURCE for std::vector

Florian Weimer fweimer@redhat.com
Wed Jun 6 12:22:00 GMT 2012


On 06/05/2012 11:05 AM, Richard Guenther wrote:
> And that would only be at -O1.  Note that such range-checks will defeat
> most, if not all, loop optimizations, too.  So C++ code using std::vector
> in compute-intensive parts would be severely pessimized.

Array bounds check elimination could deal with that, but that would 
require to teach the compiler about std::vector internals.

> So, I don't think fortifying libstdc++ is a good idea at all.

For std::vector and operator[] I agree, but I wouldn't discard the 
entire idea completely.  (std::array would be much cheaper to check, but 
then we'd lose consistency.)

I'm going to look for tool support for locating such uses of operator[]. 
  We might start recommending developers to switch to the at() member 
functions in most code.

-- 
Florian Weimer / Red Hat Product Security Team



More information about the Libstdc++ mailing list