diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6f1b2277ad8..c1680a6f1d6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2000-06-29 scott snyder + + * bits/concept_checks.h + (__less_then_comparable_requirement_violation): Only check for <. + * testsuite/25_algorithms/lower_bound.cc: New file. + 2000-06-29 Benjamin Kosnik * testsuite/27_io/ostream_manip.cc (test02): Add tests. @@ -6,7 +12,7 @@ _M_buf_size_opt too. * bits/std_streambuf.h (basic_streambuf::~basic_streambuf): Zero out _M_buf_size_opt. - * bits/std_sstream.h (basic_stringbuf::_M_init_stringbuf): Zero + * bits/std_sstream.h (basic_stringbuf::_M_init_stringbuf): Set _M_buf_size_opt out here. * bits/char_traits.h (char_traits::eos): Non standard member function, uglify to __eos. Return char_type(). diff --git a/libstdc++-v3/bits/concept_checks.h b/libstdc++-v3/bits/concept_checks.h index 36df2833286..4a0e2d55703 100644 --- a/libstdc++-v3/bits/concept_checks.h +++ b/libstdc++-v3/bits/concept_checks.h @@ -393,7 +393,7 @@ struct _STL_ERROR { template static _Type __less_than_comparable_requirement_violation(_Type __a, _Type __b) { - if (__a < __b || __a > __b || __a <= __b || __a >= __b) return __a; + if (__a < __b) return __a; return __b; } template diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc new file mode 100644 index 00000000000..076c954c535 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc @@ -0,0 +1,50 @@ +// Copyright (C) 2000 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +#include +#ifdef DEBUG_ASSERT +#include +#endif + +// http://sourceware.cygnus.com/ml/libstdc++/2000-06/msg00316.html +struct foo { }; + +bool operator== (const foo&, const foo&) { }; +bool operator< (const foo&, const foo&) { }; + +void bar(foo* a, foo* b, foo& x) +{ + foo* c = std::lower_bound(a, b, x); +} + +void test01() +{ + bool test = true; + +#ifdef DEBUG_ASSERT + assert(test); +#endif +} + +int main() +{ + return 0; +} + + +