These should be checking for equality, not performing assignments.
The tests for from_range on associative containers were actually
checking the wrong thing, but the bug in the is_equal function was
making the incorrect checks pass anyway, because all the values being
used were non-zero, so the result of lhs.id = rhs.id was true, but would
have been false if lhs.id == rhs.id had been used as intended.
libstdc++-v3/ChangeLog:
* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
Fix assignment used instead of equality comparison.
* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc:
Likewise.
*
testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc:
Likewise.
*
testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc:
Likewise.
*
testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc:
Likewise.
* testsuite/23_containers/map/cons/from_range.cc: Fix is_equal
function and expected value of comparison functions after
construction.
* testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
* testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
* testsuite/23_containers/set/cons/from_range.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/from_range.cc: Fix
is_equal functions.
* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/cons/from_range.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/from_range.cc:
Likewise.
* testsuite/25_algorithms/minmax/constrained.cc: Fix assignment
used instead of equality comparison.
* testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc:
Likewise.
---
Luckily the actual library code was correct, even though we weren't
testing it properly in these cases.
Tested powerpc64le-linux. Pushed to trunk.
.../numeric_conversions/char/stoi.cc | 2 +-
.../numeric_conversions/char/stol.cc | 2 +-
.../numeric_conversions/char/stoll.cc | 2 +-
.../numeric_conversions/char/stoul.cc | 2 +-
.../numeric_conversions/char/stoull.cc | 2 +-
.../numeric_conversions/wchar_t/stoi.cc | 2 +-
.../numeric_conversions/wchar_t/stol.cc | 2 +-
.../numeric_conversions/wchar_t/stoll.cc | 2 +-
.../numeric_conversions/wchar_t/stoul.cc | 2 +-
.../numeric_conversions/wchar_t/stoull.cc | 2 +-
.../23_containers/map/cons/from_range.cc | 6 +++---
.../23_containers/multimap/cons/from_range.cc | 6 +++---
.../23_containers/multiset/cons/from_range.cc | 6 +++---
.../23_containers/set/cons/from_range.cc | 6 +++---
.../unordered_map/cons/from_range.cc | 4 ++--
.../unordered_multimap/cons/from_range.cc | 4 ++--
.../unordered_multiset/cons/from_range.cc | 4 ++--
.../unordered_set/cons/from_range.cc | 4 ++--
.../25_algorithms/minmax/constrained.cc | 16 ++++++++--------
.../manipulators/extended/get_time/wchar_t/1.cc | 4 ++--
20 files changed, 40 insertions(+), 40 deletions(-)
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
index 9fc143c1473b..4d2a8ba46c39 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
@@ -86,7 +86,7 @@ test01()
}
VERIFY( test );
VERIFY( i1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
index 85d5e6dbbf33..55e39dd9e89a 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
@@ -86,7 +86,7 @@ test01()
}
VERIFY( test );
VERIFY( l1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
index a698baeab814..5b23d6c27b8c 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
@@ -87,7 +87,7 @@ test01()
}
VERIFY( test );
VERIFY( ll1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
index 47c20ce09585..00afc942cdcc 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
@@ -86,7 +86,7 @@ test01()
}
VERIFY( test );
VERIFY( ul1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
index ad81b67af87a..f44eb1ddc316 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
@@ -87,7 +87,7 @@ test01()
}
VERIFY( test );
VERIFY( ull1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
index 88e1da7dff4e..1aec77f6a698 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
@@ -88,7 +88,7 @@ test01()
}
VERIFY( test );
VERIFY( i1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
index 98388f99f5ce..41e9d669774f 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
@@ -88,7 +88,7 @@ test01()
}
VERIFY( test );
VERIFY( l1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
index d7a49f5cea6f..5c7a25b3e9e6 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
@@ -88,7 +88,7 @@ test01()
}
VERIFY( test );
VERIFY( ll1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
index b5537967ceb6..d33289a88931 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
@@ -88,7 +88,7 @@ test01()
}
VERIFY( test );
VERIFY( ul1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
index 503101f48749..67c963942212 100644
---
a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
+++
b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
@@ -88,7 +88,7 @@ test01()
}
VERIFY( test );
VERIFY( ull1 == 7 );
- VERIFY( idx1 = 1 );
+ VERIFY( idx1 == 1 );
try
{
diff --git a/libstdc++-v3/testsuite/23_containers/map/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/map/cons/from_range.cc
index 3a9fede04348..145390069650 100644
--- a/libstdc++-v3/testsuite/23_containers/map/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/cons/from_range.cc
@@ -61,7 +61,7 @@ constexpr bool is_equal(std::less<T>, std::less<U>)
{ return true; }
constexpr bool is_equal(StateCmp lhs, StateCmp rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
constexpr auto get0 = [](auto const& t) {
using std::get;
@@ -103,12 +103,12 @@ do_test(Alloc alloc, Cmp cmp)
std::map<K, V, Cmp, Alloc> m4(std::from_range, Range(a, a+4), cmp);
VERIFY( eq(m4, {a, 4}) );
VERIFY( m4.get_allocator() == Alloc() );
- VERIFY( is_equal(m4.key_comp(), Cmp()) );
+ VERIFY( is_equal(m4.key_comp(), cmp) );
std::map<K, V, Cmp, Alloc> m9(std::from_range, Range(a, a+9), alloc);
VERIFY( eq(m9, {a, 9}) );
VERIFY( m9.get_allocator() == alloc );
- VERIFY( is_equal(m9.key_comp(), cmp) );
+ VERIFY( is_equal(m9.key_comp(), Cmp()) );
std::map<K, V, Cmp, Alloc> mr(std::from_range, Range(a, a+14), cmp, alloc);
VERIFY( eq(mr, {a, 9}) );
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/multimap/cons/from_range.cc
index 5907bab9878c..bb79720cdd8e 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/cons/from_range.cc
@@ -61,7 +61,7 @@ constexpr bool is_equal(std::less<T>, std::less<U>)
{ return true; }
constexpr bool is_equal(StateCmp lhs, StateCmp rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
constexpr auto get0 = [](auto const& t) {
using std::get;
@@ -103,12 +103,12 @@ do_test(Alloc alloc, Cmp cmp)
std::multimap<K, V, Cmp, Alloc> m4(std::from_range, Range(a, a+4), cmp);
VERIFY( eq(m4, {a, 4}) );
VERIFY( m4.get_allocator() == Alloc() );
- VERIFY( is_equal(m4.key_comp(), Cmp()) );
+ VERIFY( is_equal(m4.key_comp(), cmp) );
std::multimap<K, V, Cmp, Alloc> m9(std::from_range, Range(a, a+9), alloc);
VERIFY( eq(m9, {a, 9}) );
VERIFY( m9.get_allocator() == alloc );
- VERIFY( is_equal(m9.key_comp(), cmp) );
+ VERIFY( is_equal(m9.key_comp(), Cmp()) );
std::multimap<K, V, Cmp, Alloc> mr(std::from_range, Range(a, a+14), cmp,
alloc);
VERIFY( eq(mr, {a, 14}) );
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/multiset/cons/from_range.cc
index cdba7eb2d632..aa9be9c30752 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/cons/from_range.cc
@@ -48,7 +48,7 @@ constexpr bool is_equal(std::less<T>, std::less<U>)
{ return true; }
constexpr bool is_equal(StateCmp lhs, StateCmp rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
template<typename Range, typename Alloc, typename Cmp>
constexpr void
@@ -82,12 +82,12 @@ do_test(Alloc alloc, Cmp cmp)
std::set<V, Cmp, Alloc> s4(std::from_range, Range(a, a+4), cmp);
VERIFY( eq(s4, {a, 4}) );
VERIFY( s4.get_allocator() == Alloc() );
- VERIFY( is_equal(s4.key_comp(), Cmp()) );
+ VERIFY( is_equal(s4.key_comp(), cmp) );
std::set<V, Cmp, Alloc> s9(std::from_range, Range(a, a+9), alloc);
VERIFY( eq(s9, {a, 9}) );
VERIFY( s9.get_allocator() == alloc );
- VERIFY( is_equal(s9.key_comp(), cmp) );
+ VERIFY( is_equal(s9.key_comp(), Cmp()) );
std::set<V, Cmp, Alloc> sr(std::from_range, Range(a, a+14), cmp, alloc);
VERIFY( eq(sr, {a, 9}) );
diff --git a/libstdc++-v3/testsuite/23_containers/set/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/set/cons/from_range.cc
index efde05d729cf..23922bf28575 100644
--- a/libstdc++-v3/testsuite/23_containers/set/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/cons/from_range.cc
@@ -47,7 +47,7 @@ constexpr bool is_equal(std::less<T>, std::less<U>)
{ return true; }
constexpr bool is_equal(StateCmp lhs, StateCmp rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
template<typename Range, typename Alloc, typename Cmp>
constexpr void
@@ -81,12 +81,12 @@ do_test(Alloc alloc, Cmp cmp)
std::set<V, Cmp, Alloc> s4(std::from_range, Range(a, a+4), cmp);
VERIFY( eq(s4, {a, 4}) );
VERIFY( s4.get_allocator() == Alloc() );
- VERIFY( is_equal(s4.key_comp(), Cmp()) );
+ VERIFY( is_equal(s4.key_comp(), cmp) );
std::set<V, Cmp, Alloc> s9(std::from_range, Range(a, a+9), alloc);
VERIFY( eq(s9, {a, 9}) );
VERIFY( s9.get_allocator() == alloc );
- VERIFY( is_equal(s9.key_comp(), cmp) );
+ VERIFY( is_equal(s9.key_comp(), Cmp()) );
std::set<V, Cmp, Alloc> sr(std::from_range, Range(a, a+14), cmp, alloc);
VERIFY( eq(sr, {a, 9}) );
diff --git
a/libstdc++-v3/testsuite/23_containers/unordered_map/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/unordered_map/cons/from_range.cc
index 04479a5e54d8..cad102e959f9 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/cons/from_range.cc
@@ -100,10 +100,10 @@ constexpr bool is_equal(std::equal_to<T>,
std::equal_to<U>)
{ return true; }
constexpr bool is_equal(StateHash lhs, StateHash rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
constexpr bool is_equal(StateEq lhs, StateEq rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
template<typename Range, typename Alloc, typename Hash, typename Equal>
constexpr void
diff --git
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/from_range.cc
index 4567bd8aa914..ab30e3c6761b 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/from_range.cc
@@ -114,10 +114,10 @@ constexpr bool is_equal(std::equal_to<T>,
std::equal_to<U>)
{ return true; }
constexpr bool is_equal(StateHash lhs, StateHash rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
constexpr bool is_equal(StateEq lhs, StateEq rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
template<typename Range, typename Alloc, typename Hash, typename Equal>
constexpr void
diff --git
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/from_range.cc
index d44598d7d615..ff0547138323 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/from_range.cc
@@ -85,11 +85,11 @@ constexpr bool is_equal(std::equal_to<T>, std::equal_to<U>)
{ return true; }
constexpr bool is_equal(StateHash lhs, StateHash rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
constexpr bool is_equal(StateEq lhs, StateEq rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
template<typename Range, typename Alloc, typename Hash, typename Equal>
constexpr void
diff --git
a/libstdc++-v3/testsuite/23_containers/unordered_set/cons/from_range.cc
b/libstdc++-v3/testsuite/23_containers/unordered_set/cons/from_range.cc
index 8259be871f6e..e00e2fb6c0ea 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/cons/from_range.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/cons/from_range.cc
@@ -84,11 +84,11 @@ constexpr bool is_equal(std::equal_to<T>, std::equal_to<U>)
{ return true; }
constexpr bool is_equal(StateHash lhs, StateHash rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
constexpr bool is_equal(StateEq lhs, StateEq rhs)
-{ return lhs.state = rhs.state; }
+{ return lhs.state == rhs.state; }
template<typename Range, typename Alloc, typename Hash, typename Equal>
constexpr void
diff --git a/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
b/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
index 270fd45132d1..8f8df4314671 100644
--- a/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
@@ -101,26 +101,26 @@ test04()
auto p = ranges::minmax({1,2}, counted_less{});
VERIFY( counter == 1 );
- VERIFY( p.min = 1 );
- VERIFY( p.max = 2 );
+ VERIFY( p.min == 1 );
+ VERIFY( p.max == 2 );
counter = 0;
p = ranges::minmax({1,2,3}, counted_less{});
VERIFY( counter == 3 );
- VERIFY( p.min = 1 );
- VERIFY( p.max = 3 );
+ VERIFY( p.min == 1 );
+ VERIFY( p.max == 3 );
counter = 0;
p = ranges::minmax({1,2,3,4,5,6,7,8,9,10}, counted_less{});
VERIFY( counter <= 15 );
- VERIFY( p.min = 1 );
- VERIFY( p.max = 10 );
+ VERIFY( p.min == 1 );
+ VERIFY( p.max == 10 );
counter = 0;
p = ranges::minmax({10,9,8,7,6,5,4,3,2,1}, counted_less{});
VERIFY( counter <= 15 );
- VERIFY( p.min = 1 );
- VERIFY( p.max = 10 );
+ VERIFY( p.min == 1 );
+ VERIFY( p.max == 10 );
}
void
diff --git
a/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
b/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
index 0f3728299a37..ee3e84d42d82 100644
--- a/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
@@ -36,8 +36,8 @@ void test01()
tm time1;
iss >> get_time(&time1, L"%H:%M:%S %Y");
VERIFY( static_cast<bool>(iss) );
- VERIFY(time1.tm_hour = 12);
- VERIFY(time1.tm_min = 1);
+ VERIFY(time1.tm_hour == 12);
+ VERIFY(time1.tm_min == 1);
VERIFY(time1.tm_sec == 30);
VERIFY(time1.tm_year == 71);
}
--
2.51.0