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