summaryrefslogtreecommitdiff
path: root/src/mongo/base
diff options
context:
space:
mode:
authorTad Marshall <tad@10gen.com>2012-12-12 13:32:43 -0500
committerTad Marshall <tad@10gen.com>2012-12-12 14:01:43 -0500
commit60c93fff4d0a7fe75e4e8028fd95ea3a825d5b83 (patch)
tree9420735d6c247a1bd98eaa6debdd8ae88c7c7374 /src/mongo/base
parentb949fb8d05f9a00b834f70a85b194e70a8c28eef (diff)
downloadmongo-60c93fff4d0a7fe75e4e8028fd95ea3a825d5b83.tar.gz
Use '#pragma warning' to suppress an MSVC warning
The Microsoft compiler issues a warning on code that is known at compile time not to be part of the final code; suppress it.
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");
}