Index: include/bits/stl_algo.h =================================================================== --- include/bits/stl_algo.h (revision 203853) +++ include/bits/stl_algo.h (working copy) @@ -1917,7 +1917,7 @@ _RandomAccessIterator __last, _Compare __comp) { _RandomAccessIterator __mid = __first + (__last - __first) / 2; - std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2), + std::__move_median_to_first(__first, __first + 1, __mid, (__last - 1), __comp); return std::__unguarded_partition(__first + 1, __last, __first, __comp); } Index: testsuite/25_algorithms/nth_element/58800.cc =================================================================== --- testsuite/25_algorithms/nth_element/58800.cc (revision 0) +++ testsuite/25_algorithms/nth_element/58800.cc (working copy) @@ -0,0 +1,47 @@ +// Copyright (C) 2005-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 +// . + +// 25.3.2 [lib.alg.nth.element] + +// { dg-options "-std=gnu++0x" } + +#include +#include +#include + +using __gnu_test::test_container; +using __gnu_test::random_access_iterator_wrapper; + +typedef test_container Container; + +int main() +{ + std::vector 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()); + return 0; +}