[Bug libstdc++/94160] New: std::pmr::pool_options::max_blocks_per_chunk=1 causes pool resources to return null pointers

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 12 22:39:12 GMT 2020


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);


More information about the Gcc-bugs mailing list