Skip to content

Commit 164c204

Browse files
[libc++][test] Fix simple warnings (llvm#74186)
Found while running libc++'s tests with MSVC's STL. This fixes 3 kinds of warnings: - Add void-casts to fix `-Wunused-variable` warnings. - Avoid sign/truncation warnings in `ConvertibleToIntegral.h`. - Add `TEST_STD_AT_LEAST_23_OR_RUNTIME_EVALUATED` to avoid mixing preprocessor and runtime tests. - Cleanup: Add `TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED` for consistency.
1 parent 410bf5e commit 164c204

File tree

14 files changed

+35
-20
lines changed

14 files changed

+35
-20
lines changed

libcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ struct Test1OutIters {
9494

9595
TEST_CONSTEXPR_CXX20 bool test() {
9696
types::for_each(types::cpp17_input_iterator_list<int*>(), TestOutIters());
97-
if (TEST_STD_VER >= 23 || !TEST_IS_CONSTANT_EVALUATED)
97+
if (TEST_STD_AT_LEAST_23_OR_RUNTIME_EVALUATED)
9898
types::for_each(types::cpp17_input_iterator_list<std::unique_ptr<int>*>(), Test1OutIters());
9999

100100
{ // Make sure that padding bits aren't copied

libcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ struct Test1OutIters {
9292

9393
TEST_CONSTEXPR_CXX20 bool test() {
9494
types::for_each(types::bidirectional_iterator_list<int*>(), TestOutIters());
95-
if (TEST_STD_VER >= 23 || !TEST_IS_CONSTANT_EVALUATED)
95+
if (TEST_STD_AT_LEAST_23_OR_RUNTIME_EVALUATED)
9696
types::for_each(types::bidirectional_iterator_list<std::unique_ptr<int>*>(), Test1OutIters());
9797

9898
{ // Make sure that padding bits aren't copied

libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ struct Test {
3838
TEST_CONSTEXPR_CXX20 bool test() {
3939
types::for_each(types::cpp17_input_iterator_list<const int*>(), Test());
4040

41-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
41+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
4242
std::vector<bool> vec(256 + 64);
4343
for (ptrdiff_t i = 0; i != 256; ++i) {
4444
for (size_t offset = 0; offset != 64; ++offset) {

libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ struct IntType {
1616

1717
constexpr bool operator==(const IntType& rhs) const { return val == rhs.val; }
1818
constexpr operator int() const noexcept { return val; }
19-
constexpr operator unsigned char() const { return val; }
20-
constexpr operator signed char() const noexcept { return val; }
19+
constexpr operator unsigned char() const { return static_cast<unsigned char>(val); }
20+
constexpr operator signed char() const noexcept { return static_cast<signed char>(val); }
2121
};
2222

2323
// only non-const convertible
@@ -28,8 +28,8 @@ struct IntTypeNC {
2828

2929
constexpr bool operator==(const IntType& rhs) const { return val == rhs.val; }
3030
constexpr operator int() noexcept { return val; }
31-
constexpr operator unsigned() { return val; }
32-
constexpr operator char() noexcept { return val; }
31+
constexpr operator unsigned() { return static_cast<unsigned>(val); }
32+
constexpr operator char() noexcept { return static_cast<char>(val); }
3333
};
3434

3535
// weird configurability of convertibility to int

libcxx/test/std/numerics/rand/rand.device/ctor.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ void check_random_device_invalid(const std::string &token) {
6161
int main(int, char**) {
6262
{
6363
std::random_device r;
64+
(void)r;
6465
}
6566
// Check the validity of various tokens
6667
{

libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
5151
assert((ConvertibleTo<SV>(v[i]) == v[j]) == expected);
5252
assert((v[i] == ConvertibleTo<SV>(v[j])) == expected);
5353

54-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
54+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
5555
assert((std::basic_string<CharT, Traits>(v[i]) == v[j]) == expected);
5656
assert((v[i] == std::basic_string<CharT, Traits>(v[j])) == expected);
5757
}
@@ -72,7 +72,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
7272
assert((abc.data() == abc0def) == false);
7373
assert((abc0def == abc.data()) == false);
7474

75-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
75+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
7676
assert((std::basic_string<CharT, Traits>(abc) == abc0def) == false);
7777
assert((abc0def == std::basic_string<CharT, Traits>(abc)) == false);
7878
}

libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
5151
assert((ConvertibleTo<SV>(v[i]) > v[j]) == expected);
5252
assert((v[i] > ConvertibleTo<SV>(v[j])) == expected);
5353

54-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
54+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
5555
assert((std::basic_string<CharT, Traits>(v[i]) > v[j]) == expected);
5656
assert((v[i] > std::basic_string<CharT, Traits>(v[j])) == expected);
5757
}
@@ -72,7 +72,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
7272
assert((abc.data() > abc0def) == false);
7373
assert((abc0def > abc.data()) == true);
7474

75-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
75+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
7676
assert((std::basic_string<CharT, Traits>(abc) > abc0def) == false);
7777
assert((abc0def > std::basic_string<CharT, Traits>(abc)) == true);
7878
}

libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
5151
assert((ConvertibleTo<SV>(v[i]) >= v[j]) == expected);
5252
assert((v[i] >= ConvertibleTo<SV>(v[j])) == expected);
5353

54-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
54+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
5555
assert((std::basic_string<CharT, Traits>(v[i]) >= v[j]) == expected);
5656
assert((v[i] >= std::basic_string<CharT, Traits>(v[j])) == expected);
5757
}
@@ -72,7 +72,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
7272
assert((abc.data() >= abc0def) == false);
7373
assert((abc0def >= abc.data()) == true);
7474

75-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
75+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
7676
assert((std::basic_string<CharT, Traits>(abc) >= abc0def) == false);
7777
assert((abc0def >= std::basic_string<CharT, Traits>(abc)) == true);
7878
}

libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
5151
assert((ConvertibleTo<SV>(v[i]) < v[j]) == expected);
5252
assert((v[i] < ConvertibleTo<SV>(v[j])) == expected);
5353

54-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
54+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
5555
assert((std::basic_string<CharT, Traits>(v[i]) < v[j]) == expected);
5656
assert((v[i] < std::basic_string<CharT, Traits>(v[j])) == expected);
5757
}
@@ -72,7 +72,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
7272
assert((abc.data() < abc0def) == true);
7373
assert((abc0def < abc.data()) == false);
7474

75-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
75+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
7676
assert((std::basic_string<CharT, Traits>(abc) < abc0def) == true);
7777
assert((abc0def < std::basic_string<CharT, Traits>(abc)) == false);
7878
}

libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
5151
assert((ConvertibleTo<SV>(v[i]) <= v[j]) == expected);
5252
assert((v[i] <= ConvertibleTo<SV>(v[j])) == expected);
5353

54-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
54+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
5555
assert((std::basic_string<CharT, Traits>(v[i]) <= v[j]) == expected);
5656
assert((v[i] <= std::basic_string<CharT, Traits>(v[j])) == expected);
5757
}
@@ -72,7 +72,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
7272
assert((abc.data() <= abc0def) == true);
7373
assert((abc0def <= abc.data()) == false);
7474

75-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
75+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
7676
assert((std::basic_string<CharT, Traits>(abc) <= abc0def) == true);
7777
assert((abc0def <= std::basic_string<CharT, Traits>(abc)) == false);
7878
}

libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
5151
assert((ConvertibleTo<SV>(v[i]) != v[j]) == expected);
5252
assert((v[i] != ConvertibleTo<SV>(v[j])) == expected);
5353

54-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
54+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
5555
assert((std::basic_string<CharT, Traits>(v[i]) != v[j]) == expected);
5656
assert((v[i] != std::basic_string<CharT, Traits>(v[j])) == expected);
5757
}
@@ -72,7 +72,7 @@ TEST_CONSTEXPR_CXX14 bool test() {
7272
assert((abc.data() != abc0def) == true);
7373
assert((abc0def != abc.data()) == true);
7474

75-
if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
75+
if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED) {
7676
assert((std::basic_string<CharT, Traits>(abc) != abc0def) == true);
7777
assert((abc0def != std::basic_string<CharT, Traits>(abc)) == true);
7878
}

libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/mutex.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ int main(int, char**)
6666
{
6767
using LG = std::scoped_lock<>;
6868
LG lg;
69+
(void)lg;
6970
}
7071
{
7172
using LG = std::scoped_lock<TestMutex>;

libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/default.pass.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
int main(int, char**)
2323
{
2424
std::shared_mutex m;
25+
(void)m;
2526

26-
return 0;
27+
return 0;
2728
}

libcxx/test/support/test_macros.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,18 @@
151151
# define TEST_IS_CONSTANT_EVALUATED false
152152
#endif
153153

154+
#if TEST_STD_VER >= 23
155+
# define TEST_STD_AT_LEAST_23_OR_RUNTIME_EVALUATED true
156+
#else
157+
# define TEST_STD_AT_LEAST_23_OR_RUNTIME_EVALUATED (!TEST_IS_CONSTANT_EVALUATED)
158+
#endif
159+
160+
#if TEST_STD_VER >= 20
161+
# define TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED true
162+
#else
163+
# define TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED (!TEST_IS_CONSTANT_EVALUATED)
164+
#endif
165+
154166
#if TEST_STD_VER >= 14
155167
# define TEST_CONSTEXPR_CXX14 constexpr
156168
#else

0 commit comments

Comments
 (0)