summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Seyster <justin.seyster@mongodb.com>2022-04-01 00:35:27 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-04-01 01:05:14 +0000
commit92d12679edfc7018a8695df2035dc5635aea96ac (patch)
tree27532f3bce7d4d119cefb400b7e8a0ada0eeac6f
parente683ab82364fe2a9923e9035aa5eb6f8f197fbc8 (diff)
downloadmongo-92d12679edfc7018a8695df2035dc5635aea96ac.tar.gz
SERVER-65148 Extend MSVC ICE workaround
-rw-r--r--src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp22
-rwxr-xr-xsrc/third_party/mozjs/get-sources.sh2
2 files changed, 23 insertions, 1 deletions
diff --git a/src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp b/src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp
index decf1a1569d..971cf006f8a 100644
--- a/src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp
+++ b/src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp
@@ -6395,22 +6395,44 @@ bool CacheIRCompiler::emitCompareBigIntStringResult(JSOp op,
break;
}
case JSOp::Lt: {
+#ifndef _MSC_VER
constexpr auto LessThan = ComparisonKind::LessThan;
+#else
+ // The static_cast works around an internal compiler error in MSVC.
+ constexpr auto LessThan = static_cast<bool>(ComparisonKind::LessThan);
+#endif
callvm.call<FnBigIntString, BigIntStringCompare<LessThan>>();
break;
}
case JSOp::Gt: {
+#ifndef _MSC_VER
constexpr auto LessThan = ComparisonKind::LessThan;
+#else
+ // The static_cast works around an internal compiler error in MSVC.
+ constexpr auto LessThan = static_cast<bool>(ComparisonKind::LessThan);
+#endif
callvm.call<FnStringBigInt, StringBigIntCompare<LessThan>>();
break;
}
case JSOp::Le: {
+#ifndef _MSC_VER
constexpr auto GreaterThanOrEqual = ComparisonKind::GreaterThanOrEqual;
+#else
+ // The static_cast works around an internal compiler error in MSVC.
+ constexpr auto GreaterThanOrEqual =
+ static_cast<bool>(ComparisonKind::GreaterThanOrEqual);
+#endif
callvm.call<FnStringBigInt, StringBigIntCompare<GreaterThanOrEqual>>();
break;
}
case JSOp::Ge: {
+#ifndef _MSC_VER
constexpr auto GreaterThanOrEqual = ComparisonKind::GreaterThanOrEqual;
+#else
+ // The static_cast works around an internal compiler error in MSVC.
+ constexpr auto GreaterThanOrEqual =
+ static_cast<bool>(ComparisonKind::GreaterThanOrEqual);
+#endif
callvm.call<FnBigIntString, BigIntStringCompare<GreaterThanOrEqual>>();
break;
}
diff --git a/src/third_party/mozjs/get-sources.sh b/src/third_party/mozjs/get-sources.sh
index 18e09f63935..c61d8cdd24e 100755
--- a/src/third_party/mozjs/get-sources.sh
+++ b/src/third_party/mozjs/get-sources.sh
@@ -9,7 +9,7 @@ set -vx
NAME=spidermonkey
LIB_GIT_BRANCH=spidermonkey-esr91.3-cpp-only
-LIB_GIT_REVISION=56b91512f0c6d8db9e676403e2b7b6634beb00d4
+LIB_GIT_REVISION=82aac6af18abcd5bf188afbc821779ccb0ca0902
LIB_GIT_REPO=git@github.com:mongodb-forks/spidermonkey.git
DEST_DIR=$(git rev-parse --show-toplevel)/src/third_party/mozjs