diff options
author | Chris Jefferson <chris@bubblescope.net> | 2013-10-20 09:07:36 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-10-20 09:07:36 +0000 |
commit | f5b9d5e877cff9d344645362dc57980a6c747e2c (patch) | |
tree | 1f64adbbc0231874e5ddbb09a2b1cc67effe6cc5 /libstdc++-v3/testsuite | |
parent | fac129d88e25ff32e2cc532d3809ecc65b2d764a (diff) | |
download | gcc-f5b9d5e877cff9d344645362dc57980a6c747e2c.zip gcc-f5b9d5e877cff9d344645362dc57980a6c747e2c.tar.gz gcc-f5b9d5e877cff9d344645362dc57980a6c747e2c.tar.bz2 |
re PR libstdc++/58800 (std::nth_element segfaults on valid input)
2013-10-20 Chris Jefferson <chris@bubblescope.net>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/58800
* include/bits/stl_algo.h (__unguarded_partition_pivot): Change
__last - 2 to __last - 1.
* testsuite/25_algorithms/nth_element/58800.cc: New
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r203872
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc new file mode 100644 index 0000000..108c0e5 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc @@ -0,0 +1,52 @@ +// Copyright (C) 2013 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// 25.3.2 [lib.alg.nth.element] + +// { dg-options "-std=gnu++11" } + +#include <algorithm> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + +using __gnu_test::test_container; +using __gnu_test::random_access_iterator_wrapper; + +typedef test_container<int, random_access_iterator_wrapper> Container; + +void test01() +{ + std::vector<int> v = { + 207089, + 202585, + 180067, + 157549, + 211592, + 216096, + 207089 + }; + + Container con(v.data(), v.data() + 7); + + std::nth_element(con.begin(), con.begin() + 3, con.end()); +} + +int main() +{ + test01(); + return 0; +} |