aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-11-13 23:44:39 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2018-11-13 23:44:39 +0000
commitb76a1b3604f8e645402a68c3352e1bc360a5b8f9 (patch)
tree35de69fbaf7487ceb26653c54292743a4f774b6d
parent6c4a1d38baf7585617cc5d2b7f26c4fc2a2d926a (diff)
downloadgcc-b76a1b3604f8e645402a68c3352e1bc360a5b8f9.zip
gcc-b76a1b3604f8e645402a68c3352e1bc360a5b8f9.tar.gz
gcc-b76a1b3604f8e645402a68c3352e1bc360a5b8f9.tar.bz2
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
-rw-r--r--libstdc++-v3/ChangeLog3
-rw-r--r--libstdc++-v3/src/c++17/memory_resource.cc2
2 files changed, 4 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 03aaeca..4ea9dbf 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
2018-11-13 Jonathan Wakely <jwakely@redhat.com>
+ * 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 cb91e51..605bdd5 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;
}