[libcxx-commits] [libcxx] [libc++] Add assertions for potential OOB reads in std::nth_element (PR #67023)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Sep 27 06:43:46 PDT 2023
================
@@ -50,24 +50,34 @@
#include "bad_comparator_values.h"
#include "check_assertion.h"
-void check_oob_sort_read() {
- std::map<std::size_t, std::map<std::size_t, bool>> comparison_results; // terrible for performance, but really convenient
- for (auto line : std::views::split(DATA, '\n') | std::views::filter([](auto const& line) { return !line.empty(); })) {
- auto values = std::views::split(line, ' ');
- auto it = values.begin();
- std::size_t left = std::stol(std::string((*it).data(), (*it).size()));
- it = std::next(it);
- std::size_t right = std::stol(std::string((*it).data(), (*it).size()));
- it = std::next(it);
- bool result = static_cast<bool>(std::stol(std::string((*it).data(), (*it).size())));
- comparison_results[left][right] = result;
- }
- auto predicate = [&](std::size_t* left, std::size_t* right) {
+class ComparisonResults {
+public:
+ ComparisonResults(std::string_view data) {
----------------
ldionne wrote:
```suggestion
explicit ComparisonResults(std::string_view data) {
```
https://github.com/llvm/llvm-project/pull/67023
More information about the libcxx-commits
mailing list