diff --git a/libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/ranges_sort_heap.pass.cpp b/libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/ranges_sort_heap.pass.cpp index 1153ed573d635..1e636ea9afac4 100644 --- a/libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/ranges_sort_heap.pass.cpp +++ b/libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/ranges_sort_heap.pass.cpp @@ -238,6 +238,7 @@ void test_complexity() { const int debug_elements = std::min(100, n); // Multiplier 2 because of comp(a,b) comp(b, a) checks. const int debug_comparisons = 2 * (debug_elements + 1) * debug_elements; + (void)debug_comparisons; std::shuffle(first, last, g); std::make_heap(first, last, &MyInt::Comp); // The exact stats of our current implementation are recorded here. @@ -247,7 +248,6 @@ void test_complexity() { LIBCPP_ASSERT(stats.moved <= 2 * n + n * logn); #if _LIBCPP_HARDENING_MODE != _LIBCPP_HARDENING_MODE_DEBUG LIBCPP_ASSERT(stats.compared <= n * logn); - (void)debug_comparisons; #else LIBCPP_ASSERT(stats.compared <= 2 * n * logn + debug_comparisons); #endif diff --git a/libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/buffered_reads.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/buffered_reads.pass.cpp index d57b7c20a2da2..ecc11f4999ffa 100644 --- a/libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/buffered_reads.pass.cpp +++ b/libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/buffered_reads.pass.cpp @@ -44,7 +44,7 @@ template void test_read(BufferPolicy policy, const std::vector& payload_sizes) { - std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), 0); + std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), std::streamsize{0}); std::vector data(total_size); for (std::size_t i = 0; i < data.size(); ++i) { data[i] = static_cast(i % (1 << 8 * sizeof(char))); @@ -99,7 +99,7 @@ void test_read(BufferPolicy policy, const std::vector& payload_ #ifndef TEST_HAS_NO_WIDE_CHARACTERS template void test_read_codecvt(BufferPolicy policy, const std::vector& payload_sizes) { - std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), 0); + std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), std::streamsize{0}); std::vector data(total_size); for (std::size_t i = 0; i < data.size(); ++i) { data[i] = static_cast(i); diff --git a/libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/buffered_writes.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/buffered_writes.pass.cpp index e782073950510..b5bbb0ca2ee4e 100644 --- a/libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/buffered_writes.pass.cpp +++ b/libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/buffered_writes.pass.cpp @@ -45,7 +45,7 @@ template void test_write(BufferPolicy policy, const std::vector& payload_sizes) { std::size_t previously_written = 0; - std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), 0); + std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), std::streamsize{0}); std::vector data(total_size); for (std::size_t i = 0; i < data.size(); ++i) { data[i] = static_cast(i % (1 << 8 * sizeof(char))); @@ -97,7 +97,7 @@ void test_write(BufferPolicy policy, const std::vector& payload template void test_write_codecvt(BufferPolicy policy, const std::vector& payload_sizes) { std::size_t previously_written = 0; - std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), 0); + std::streamsize total_size = std::accumulate(payload_sizes.begin(), payload_sizes.end(), std::streamsize{0}); std::vector data(total_size); for (std::size_t i = 0; i < data.size(); ++i) { data[i] = static_cast(i); diff --git a/libcxx/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp b/libcxx/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp index 7f3022a3ce9bd..ad0cdb092def8 100644 --- a/libcxx/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp +++ b/libcxx/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp @@ -25,9 +25,7 @@ int main(int, char**) { typedef fs::path::format E; static_assert(std::is_enum::value, ""); - typedef std::underlying_type::type UT; - - LIBCPP_ONLY(static_assert(std::is_same::value, "")); // Implementation detail + LIBCPP_STATIC_ASSERT(std::is_same::type, unsigned char>::value, ""); // Implementation detail static_assert( E::auto_format != E::native_format && diff --git a/libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/swap.pass.cpp b/libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/swap.pass.cpp index ba007da5a054a..a236bf4752a07 100644 --- a/libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/swap.pass.cpp +++ b/libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/swap.pass.cpp @@ -75,7 +75,8 @@ static void test_short_write_after_swap() { sync_buf2.sputn(expected.data(), expected.size()); sync_buf1.swap(sync_buf2); - expected.push_back(sync_buf1.sputc(CharT('B'))); + sync_buf1.sputc(CharT('B')); + expected.push_back(CharT('B')); sync_buf2.sputc(CharT('Z')); assert(sstr1.str().empty()); diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.indirect.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.indirect.pass.cpp index 172b6cc2f2944..f6f586a2b5478 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.indirect.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.indirect.pass.cpp @@ -29,7 +29,9 @@ TEST_WORKAROUND_BUG_109234844_WEAK void* operator new(std::size_t s) TEST_THROW_SPEC(std::bad_alloc) { ++new_called; void* ret = std::malloc(s); - if (!ret) std::abort(); // placate MSVC's unchecked malloc warning + if (!ret) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } return ret; } diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.pass.cpp index e352c00b4d0af..29e739d8515fd 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.replace.pass.cpp @@ -27,7 +27,9 @@ int delete_called = 0; void* operator new[](std::size_t s) TEST_THROW_SPEC(std::bad_alloc) { ++new_called; void* ret = std::malloc(s); - if (!ret) std::abort(); // placate MSVC's unchecked malloc warning + if (!ret) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } return ret; } diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp index 8ad0292dcb5ca..b26eec0324af6 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp @@ -33,7 +33,9 @@ TEST_WORKAROUND_BUG_109234844_WEAK void* operator new[](std::size_t s) TEST_THROW_SPEC(std::bad_alloc) { ++new_called; void* ret = std::malloc(s); - if (!ret) std::abort(); // placate MSVC's unchecked malloc warning + if (!ret) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } return ret; } diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.replace.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.replace.pass.cpp index a03313e5872ef..ab1cf5ea46448 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.replace.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.replace.pass.cpp @@ -25,7 +25,9 @@ int delete_called = 0; void* operator new(std::size_t s) TEST_THROW_SPEC(std::bad_alloc) { ++new_called; void* ret = std::malloc(s); - if (!ret) std::abort(); // placate MSVC's unchecked malloc warning + if (!ret) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } return ret; } diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align_nothrow.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align_nothrow.pass.cpp index 4e5d36cd7c6df..1c575729678d5 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align_nothrow.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align_nothrow.pass.cpp @@ -60,8 +60,9 @@ int main(int, char**) { assert(reinterpret_cast(x) % alignof(TrackLifetimeOverAligned) == 0); assert(info.address_constructed == x); + const auto old_x = x; delete x; - assert(info.address_destroyed == x); + assert(info.address_destroyed == old_x); } return 0; diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.pass.cpp index 398de0068aba1..56ae8df43f66f 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.pass.cpp @@ -50,8 +50,9 @@ int main(int, char**) { assert(x != nullptr); assert(info.address_constructed == x); + const auto old_x = x; delete x; - assert(info.address_destroyed == x); + assert(info.address_destroyed == old_x); } return 0; diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.replace.indirect.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.replace.indirect.pass.cpp index 2ae0dfa4f1abc..35a601339ddd3 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.replace.indirect.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_nothrow.replace.indirect.pass.cpp @@ -28,7 +28,9 @@ TEST_WORKAROUND_BUG_109234844_WEAK void* operator new(std::size_t s) TEST_THROW_SPEC(std::bad_alloc) { ++new_called; void* ret = std::malloc(s); - if (!ret) std::abort(); // placate MSVC's unchecked malloc warning + if (!ret) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } return ret; } diff --git a/libcxx/test/std/ranges/range.adaptors/range.elements/general.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.elements/general.pass.cpp index 78792ae54bdbf..d5318ced73dcd 100644 --- a/libcxx/test/std/ranges/range.adaptors/range.elements/general.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.elements/general.pass.cpp @@ -70,7 +70,7 @@ int main(int, char**) { // tuple { - std::tuple tps[] = {{1}, {2}, {3}}; + std::tuple tps[] = {{short{1}}, {short{2}}, {short{3}}}; auto ev = tps | std::views::elements<0>; auto expected = {1, 2, 3}; assert(std::ranges::equal(ev, expected)); diff --git a/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/deref.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/deref.pass.cpp index d87a3e5339203..f88091f42699e 100644 --- a/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/deref.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/deref.pass.cpp @@ -50,7 +50,7 @@ constexpr void testValue(T t) { constexpr bool test() { // test tuple { - std::tuple ts[] = {{1, 2, 3}, {4, 5, 6}}; + std::tuple ts[] = {{1, short{2}, 3}, {4, short{5}, 6}}; testReference<0>(ts); testReference<1>(ts); testReference<2>(ts); @@ -61,7 +61,7 @@ constexpr bool test() { // test pair { - std::pair ps[] = {{1, 2}, {4, 5}}; + std::pair ps[] = {{1, short{2}}, {4, short{5}}}; testReference<0>(ps); testReference<1>(ps); testValue<0>(ps[0]); diff --git a/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/member_types.compile.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/member_types.compile.pass.cpp index 9a76c2fcb70c2..70d49c1304b54 100644 --- a/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/member_types.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/member_types.compile.pass.cpp @@ -64,9 +64,7 @@ static_assert(std::same_as*>>::iterator_category, // std::random_access_iterator_tag>); -using Generator = decltype(std::views::iota(0, 1) | std::views::transform([](int) { - return std::pair{1, 1}; - })); +using Generator = decltype(std::views::iota(0, 1) | std::views::transform([](int) { return std::pair{1, short{1}}; })); static_assert(std::ranges::random_access_range); static_assert(std::same_as::iterator_category, // diff --git a/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp b/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp index fc3d5c1222746..1c520652ba229 100644 --- a/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp +++ b/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp @@ -36,7 +36,9 @@ void* operator new(std::size_t s) TEST_THROW_SPEC(std::bad_alloc) } while (!throw_one.compare_exchange_weak(expected, expected - 1)); ++outstanding_new; void* ret = std::malloc(s); - if (!ret) std::abort(); // placate MSVC's unchecked malloc warning + if (!ret) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } return ret; } diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp index 2759b921fabe0..48c62ae7d45bb 100644 --- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp +++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp @@ -37,8 +37,9 @@ struct convertible_from_int { void meow(std::reference_wrapper) {} void meow(convertible_from_int) {} -int main(int, char**) -{ +std::reference_wrapper purr(); + +int main(int, char**) { { convertible_to_int_ref t; std::reference_wrapper r(t); @@ -54,21 +55,18 @@ int main(int, char**) ASSERT_NOEXCEPT(Ref(nothrow_convertible())); ASSERT_NOT_NOEXCEPT(Ref(nothrow_convertible())); } - { - meow(0); - } - { - extern std::reference_wrapper purr(); - ASSERT_SAME_TYPE(decltype(true ? purr() : 0), int); - } + meow(0); + ASSERT_SAME_TYPE(decltype(true ? purr() : 0), int); #if TEST_STD_VER > 14 { int i = 0; std::reference_wrapper ri(i); - static_assert((std::is_same>::value), "" ); + static_assert((std::is_same>::value), ""); + } + { const int j = 0; std::reference_wrapper rj(j); - static_assert((std::is_same>::value), "" ); + static_assert((std::is_same>::value), ""); } #endif diff --git a/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared_for_overwrite.pass.cpp b/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared_for_overwrite.pass.cpp index 21e1786f01588..c701defeaf710 100644 --- a/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared_for_overwrite.pass.cpp +++ b/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared_for_overwrite.pass.cpp @@ -60,6 +60,9 @@ constexpr char pattern = 0xDE; void* operator new(std::size_t count) { void* ptr = std::malloc(count); + if (!ptr) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } for (std::size_t i = 0; i < count; ++i) { *(reinterpret_cast(ptr) + i) = pattern; } diff --git a/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique_for_overwrite.default_init.pass.cpp b/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique_for_overwrite.default_init.pass.cpp index 8011a37be08ec..0afae3bd5ca94 100644 --- a/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique_for_overwrite.default_init.pass.cpp +++ b/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique_for_overwrite.default_init.pass.cpp @@ -27,6 +27,9 @@ constexpr char pattern = 0xDE; void* operator new(std::size_t count) { void* ptr = std::malloc(count); + if (!ptr) { + std::abort(); // placate MSVC's unchecked malloc warning (assert() won't silence it) + } for (std::size_t i = 0; i < count; ++i) { *(reinterpret_cast(ptr) + i) = pattern; }