diff options
author | Stephan T. Lavavej <stl@exchange.microsoft.com> | 2017-12-13 03:51:27 +0300 |
---|---|---|
committer | Stephan T. Lavavej <stl@exchange.microsoft.com> | 2017-12-13 03:51:27 +0300 |
commit | 79e0733c20ea7dafd270aa468640c6cd5063b13c (patch) | |
tree | 0613c8f4165935dd6c62fd4f78039bb5b96155ce /libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp | |
parent | 1d3d8adad7d77e92e523fa736fd23ce587ead91d (diff) |
[libcxx] [test] Fix MSVC warnings, null pointer deref.
test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
Silence MSVC warning C4244. This is expected when passing
floating-point values for size.
test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp
test/std/utilities/template.bitset/bitset.members/to_ulong.pass.cpp
Avoid MSVC "warning C4293: '<<': shift count negative or too big,
undefined behavior". MSVC sees (1ULL << N) and warns - being guarded
by const bool canFit is insufficient. A small change to the code
avoids the warning without the need for a pragma.
Remove a spurious printf() declaration from to_ullong.pass.cpp.
Change ULL to UL in to_ulong.pass.cpp. The ULL suffix was
probably copy-pasted.
test/std/utilities/tuple/tuple.general/ignore.pass.cpp
Use LIBCPP_STATIC_ASSERT for consistency with other files.
test/support/container_test_types.h
Fix a null pointer dereference, found by MSVC /analyze
warning C6011 "Dereferencing NULL pointer 'm_expected_args'."
Fixes D41030.
llvm-svn: 320535
Diffstat (limited to 'libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp')
-rw-r--r-- | libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp index c4a818f60f52..20578511c8cf 100644 --- a/libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp +++ b/libcxx/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp @@ -8,7 +8,6 @@ //===----------------------------------------------------------------------===// // test unsigned long long to_ullong() const; -extern "C" int printf(const char *, ...); #include <bitset> #include <algorithm> @@ -40,7 +39,7 @@ void test_to_ullong() { // test values bigger than can fit into the bitset const unsigned long long val = 0x55AAAAFFFFAAAA55ULL; const bool canFit = N < sizeof(unsigned long long) * CHAR_BIT; - const unsigned long long mask = canFit ? (1ULL << N) - 1 : (unsigned long long)(-1); + const unsigned long long mask = canFit ? (1ULL << (canFit ? N : 0)) - 1 : (unsigned long long)(-1); // avoid compiler warnings std::bitset<N> v(val); assert(v.to_ullong() == (val & mask)); // we shouldn't return bit patterns from outside the limits of the bitset. } |