On Thu, Dec 2, 2010 at 2:20 PM, Joe Buck <joe.b...@synopsys.com> wrote:
> 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.

I would expect max_size_t/sizeof(T) to be actually an integer
constant that n is compared against.  I would be surprised
if that one-time comparison is noticeable in real applications that
new an array of objects.

>
>

Reply via email to