summaryrefslogtreecommitdiff
path: root/src/mongo/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/base')
-rw-r--r--src/mongo/base/parse_number.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/base/parse_number.cpp b/src/mongo/base/parse_number.cpp
index 675c2d82e41..0ecb797670f 100644
--- a/src/mongo/base/parse_number.cpp
+++ b/src/mongo/base/parse_number.cpp
@@ -128,8 +128,14 @@ namespace mongo {
NumberType digitValue = NumberType(_digitValue(str[i]));
if (int(digitValue) >= base)
return Status(ErrorCodes::FailedToParse, "Bad digit");
+
+// MSVC: warning C4146: unary minus operator applied to unsigned type, result still unsigned
+// This code is statically known to be dead when NumberType is unsigned, so the warning is not real
+#pragma warning(push)
+#pragma warning(disable:4146)
if ((NumberType(limits::min() / base) > n) ||
((limits::min() - NumberType(n * base)) > -digitValue)) {
+#pragma warning(pop)
return Status(ErrorCodes::FailedToParse, "Underflow");
}