Commit 6c4a55d0 authored by Mark Williams's avatar Mark Williams Committed by Facebook Github Bot

Revert D4805628: [folly] Suppress more warnings for MSVC

Summary: This reverts commit 9574ea984e1e3daca01101259687f46effcf3a9f

Differential Revision: D4805628

fbshipit-source-id: 3285317a4c3f2012da1f13e9c91b6c623726c9b7
parent a411c5f3
......@@ -557,11 +557,8 @@ toAppend(Src value, Tgt * result) {
char buffer[20];
if (value < 0) {
result->push_back('-');
using u = std::make_signed<size_t>::type;
result->append(
buffer,
uint64ToBufferUnsafe(
static_cast<size_t>(-static_cast<u>(value)), buffer));
buffer, uint64ToBufferUnsafe(uint64_t(-uint64_t(value)), buffer));
} else {
result->append(buffer, uint64ToBufferUnsafe(uint64_t(value), buffer));
}
......@@ -1182,14 +1179,13 @@ parseTo(StringPiece src, Tgt& out) {
namespace detail {
/**
* Bool to integral/float doesn't need any special checks, and this
* Bool to integral doesn't need any special checks, and this
* overload means we aren't trying to see if a bool is less than
* an integer.
*/
template <class Tgt>
typename std::enable_if<
!std::is_same<Tgt, bool>::value &&
(std::is_integral<Tgt>::value || std::is_floating_point<Tgt>::value),
!std::is_same<Tgt, bool>::value && std::is_integral<Tgt>::value,
Expected<Tgt, ConversionCode>>::type
convertTo(const bool& value) noexcept {
return static_cast<Tgt>(value ? 1 : 0);
......
......@@ -233,11 +233,6 @@ struct ExpectedStorage {
Value&& value() && {
return std::move(value_);
}
// TODO (t17322426): remove when VS2015 support is deprecated
// VS2015 static analyzer incorrectly flags these as unreachable in certain
// circumstances. VS2017 does not have this problem on the same code.
FOLLY_PUSH_WARNING
FOLLY_MSVC_DISABLE_WARNING(4702) // unreachable code
Error& error() & {
return error_;
}
......@@ -247,7 +242,6 @@ struct ExpectedStorage {
Error&& error() && {
return std::move(error_);
}
FOLLY_POP_WARNING
};
template <class Value, class Error>
......@@ -533,11 +527,6 @@ struct ExpectedStorage<Value, Error, StorageType::ePODStruct> {
Value&& value() && {
return std::move(value_);
}
// TODO (t17322426): remove when VS2015 support is deprecated
// VS2015 static analyzer incorrectly flags these as unreachable in certain
// circumstances. VS2017 does not have this problem on the same code.
FOLLY_PUSH_WARNING
FOLLY_MSVC_DISABLE_WARNING(4702) // unreachable code
Error& error() & {
return error_;
}
......@@ -547,7 +536,6 @@ struct ExpectedStorage<Value, Error, StorageType::ePODStruct> {
Error&& error() && {
return std::move(error_);
}
FOLLY_POP_WARNING
};
namespace expected_detail_ExpectedHelper {
......
......@@ -365,8 +365,7 @@ template <>
struct hasher<bool> {
size_t operator()(bool key) const {
// Make sure that all the output bits depend on the input.
using u = std::make_signed<size_t>::type;
return static_cast<size_t>(-static_cast<u>(key));
return -static_cast<size_t>(key);
}
};
......
......@@ -44,6 +44,11 @@
#undef CAL_GREGORIAN
#endif
// Defined in winnt.h
#ifdef DELETE
#undef DELETE
#endif
// Defined in the GDI interface.
#ifdef ERROR
#undef ERROR
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment