aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Snyder <snyder@fnal.gov>2000-06-30 00:49:12 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2000-06-30 00:49:12 +0000
commitb6a89402e3816ca52914506de0efeddcb5f248d3 (patch)
treee37da322a543315bc660fb64a3a6500f7860d583
parent4a2f4b128f298dcd45d4985e67289b82e9efd2e5 (diff)
downloadgcc-b6a89402e3816ca52914506de0efeddcb5f248d3.zip
gcc-b6a89402e3816ca52914506de0efeddcb5f248d3.tar.gz
gcc-b6a89402e3816ca52914506de0efeddcb5f248d3.tar.bz2
2000-06-29 scott snyder <snyder@fnal.gov>
* bits/concept_checks.h (__less_then_comparable_requirement_violation): Only check for <. * testsuite/25_algorithms/lower_bound.cc: New file. From-SVN: r34798
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/bits/concept_checks.h2
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound.cc50
3 files changed, 58 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6f1b227..c1680a6 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2000-06-29 scott snyder <snyder@fnal.gov>
+
+ * 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 <bkoz@purist.soma.redhat.com>
* 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 36df283..4a0e2d5 100644
--- a/libstdc++-v3/bits/concept_checks.h
+++ b/libstdc++-v3/bits/concept_checks.h
@@ -393,7 +393,7 @@ struct _STL_ERROR {
template <class _Type>
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 <class _Type>
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 0000000..076c954
--- /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 <algorithm>
+#ifdef DEBUG_ASSERT
+#include <assert.h>
+#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;
+}
+
+
+