From: Jonathan Wakely Date: Tue, 13 Nov 2018 23:44:39 +0000 (+0000) Subject: Fix error when selecting number of memory pools X-Git-Tag: basepoints/gcc-10~3082 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b76a1b3604f8e645402a68c3352e1bc360a5b8f9;p=thirdparty%2Fgcc.git Fix error when selecting number of memory pools * src/c++17/memory_resource.cc (select_num_pools): Fix off-by-one error when block_size is equal to one of the values in the array. From-SVN: r266092 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 03aaeca1af55..4ea9dbfc18af 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,8 @@ 2018-11-13 Jonathan Wakely + * src/c++17/memory_resource.cc (select_num_pools): Fix off-by-one + error when block_size is equal to one of the values in the array. + * src/c++17/memory_resource.cc (_Pool::deallocate): Restore attributes to parameters that are only used in assertions. diff --git a/libstdc++-v3/src/c++17/memory_resource.cc b/libstdc++-v3/src/c++17/memory_resource.cc index cb91e5147cec..605bdd53950b 100644 --- a/libstdc++-v3/src/c++17/memory_resource.cc +++ b/libstdc++-v3/src/c++17/memory_resource.cc @@ -892,7 +892,7 @@ namespace pmr auto p = std::lower_bound(std::begin(pool_sizes), std::end(pool_sizes), opts.largest_required_pool_block); const int n = p - std::begin(pool_sizes); - if (p == std::end(pool_sizes) || *p == opts.largest_required_pool_block) + if (p == std::end(pool_sizes)) return n; return n + 1; }