libstdc++/8230: Buggy allocator behaviour

Gabriel Dos Reis gdr@integrable-solutions.net
Thu Nov 14 12:43:00 GMT 2002


Benjamin Kosnik <bkoz@redhat.com> writes:

| See attached patch for a way to fix this with the pool allocators.

I agree with your patch.

The following comment is for possible improvements.  What about using

   if (__builtin_expect(__ret == 0, 0))
       __throw_bad_alloc("allocate::allocate");

?
That gives a hint to the compiler that the branch is expected to be
taken very unfrequently, and it should make scheduling accordingly.

In general, I would like to see us starting using use __builtin_expect()
at places where we do checks for limits cases.  Thoughts? 

-- Gaby



More information about the Gcc-bugs mailing list