https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94160
Bug ID: 94160 Summary: std::pmr::pool_options::max_blocks_per_chunk=1 causes pool resources to return null pointers Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: libstdc++ Assignee: redi at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- This calculation in __pool_resource::_M_alloc_pools() can result in blocks_per_chunk being set to zero, and then _Pool::allocate always returns null: blocks_per_chunk = std::min(blocks_per_chunk, _M_opts.max_blocks_per_chunk); // Allow space for bitset to track which blocks are used/unused: blocks_per_chunk *= 1 - 1.0 / (__CHAR_BIT__ * block_size);