operator new[] overflow (PR 19351)

Joe Buck Joe.Buck@synopsys.COM
Thu Dec 2 20:20:00 GMT 2010


On Wed, Dec 01, 2010 at 10:26:58PM -0800, Florian Weimer wrote:
> * Chris Lattner:
> 
> > On overflow it just forces the size passed in to operator new to
> > -1ULL, which throws bad_alloc.
> 
> This is also what my patch tries to implement.

Yes, but Chris's code just checks the overflow of the multiply.  Your
patch achieves the same result in a more complex way, by
computing the largest non-overflowing value of n in

new T[n];

and comparing n against that.  Even though max_size_t/sizeof T is a
compile-time constant, this is still more expensive.



More information about the Gcc mailing list