[Bug bootstrap/87747] [9 regression] Bootstrap failure if using gcc-4.6 as stage1 compiler

rearnsha at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Oct 30 11:34:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87747

--- Comment #5 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
Author: rearnsha
Date: Tue Oct 30 11:33:24 2018
New Revision: 265620

URL: https://gcc.gnu.org/viewcvs?rev=265620&root=gcc&view=rev
Log:
Don't allow the pool allocator to be configured to allocate zero-sized objects

PR bootstrap/87747 would have been significantly easier to track down if
the pool allocator had faulted an attempt to configure it to allocate
zero-sized objects.  Instead, this slipped through and we later hit
memory corruption when the assumed size turned out to be different to
the configured size.

While, theoretically, there might be a use case for this, it seems
unlikely to me that GCC would have such a use.  So this patch adds a
checking assert that the object size is not zero.

        * alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize):
        Assert that the allocation size is not zero.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/alloc-pool.h


More information about the Gcc-bugs mailing list