aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/operations/2.cc17
2 files changed, 22 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1620f4e..6b2124a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-26 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/23_containers/set/operations/2.cc: Add test for
+ non-transparent comparison function.
+
2015-01-25 Oleg Endo <olegendo@gcc.gnu.org>
PR target/29366
diff --git a/libstdc++-v3/testsuite/23_containers/set/operations/2.cc b/libstdc++-v3/testsuite/23_containers/set/operations/2.cc
index 752bc7d..84ddd1f 100644
--- a/libstdc++-v3/testsuite/23_containers/set/operations/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/operations/2.cc
@@ -128,6 +128,22 @@ test05()
VERIFY( Cmp::count == 0);
}
+void
+test06()
+{
+ // https://gcc.gnu.org/ml/libstdc++/2015-01/msg00176.html
+ // Verify the new function template overloads do not cause problems
+ // when the comparison function is not transparent.
+ struct I
+ {
+ int i;
+ operator int() const { return i; }
+ };
+
+ std::set<int> s;
+ I i = { };
+ s.find(i);
+}
int
main()
@@ -137,4 +153,5 @@ main()
test03();
test04();
test05();
+ test06();
}