Index: include/debug/functions.h =================================================================== --- include/debug/functions.h (revision 133172) +++ include/debug/functions.h (working copy) @@ -268,35 +268,31 @@ return __check_sorted_aux(__first, __last, __pred, _Category()); } - template + template inline bool - __check_sorted_set_aux(const _InputIterator1& __first, - const _InputIterator1& __last, - const _InputIterator2&, std::__true_type) + __check_sorted_set_aux(const _InputIterator& __first, + const _InputIterator& __last, + std::__true_type) { return __check_sorted(__first, __last); } - template + template inline bool - __check_sorted_set_aux(const _InputIterator1&, - const _InputIterator1&, - const _InputIterator2&, std::__false_type) + __check_sorted_set_aux(const _InputIterator&, + const _InputIterator&, + std::__false_type) { return true; } - template + template inline bool - __check_sorted_set_aux(const _InputIterator1& __first, - const _InputIterator1& __last, - const _InputIterator2&, _Predicate __pred, - std::__true_type) + __check_sorted_set_aux(const _InputIterator& __first, + const _InputIterator& __last, + _Predicate __pred, std::__true_type) { return __check_sorted(__first, __last, __pred); } - template + template inline bool - __check_sorted_set_aux(const _InputIterator1&, - const _InputIterator1&, - const _InputIterator2&, _Predicate, + __check_sorted_set_aux(const _InputIterator&, + const _InputIterator&, _Predicate, std::__false_type) { return true; } Index: testsuite/25_algorithms/set_difference/35541.cc =================================================================== --- testsuite/25_algorithms/set_difference/35541.cc (revision 0) +++ testsuite/25_algorithms/set_difference/35541.cc (revision 0) @@ -0,0 +1,36 @@ +// Copyright (C) 2008 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 2, 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 COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-do compile } + +// libstdc++/35541 + +#include +#include +#include + +void test01() +{ + std::set > mFactors; + std::set > secondFactor; + std::set_difference(mFactors.begin(), mFactors.end(), + mFactors.begin(), mFactors.end(), + std::insert_iterator > > + (secondFactor, secondFactor.end())); +}