This is an archive of the discontinued LLVM Phabricator instance.

[libcxx] [test] Fix MSVC warnings, null pointer deref.
ClosedPublic

Authored by STL_MSFT on Dec 8 2017, 12:50 PM.

Details

Summary

[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'."

Diff Detail

Event Timeline

STL_MSFT created this revision.Dec 8 2017, 12:50 PM
mclow.lists added a comment.EditedDec 12 2017, 6:45 AM

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.

Your compiler needs to either (a) get much smarter about its warnings, or (b) stop warning about this. It's just WRONG here.

mclow.lists accepted this revision.Dec 12 2017, 6:46 AM

These look fine to me. Thanks for the attention to detail.

This revision is now accepted and ready to land.Dec 12 2017, 6:46 AM
STL_MSFT closed this revision.Dec 12 2017, 4:53 PM