-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Query Execution
-
None
-
Query Execution
-
Fully Compatible
-
QE 2023-05-15, QE 2023-05-29, QE 2023-06-12, QE 2023-06-26, QE 2023-07-10, QE 2023-07-24, QE 2023-08-07, QE 2023-08-21, QE 2023-09-04, QE 2023-09-18, QE 2023-10-02, QE 2023-10-16, QE 2023-10-30, QE 2023-11-13, QE 2023-11-27, QE 2023-12-11, QE 2023-12-25, QE 2024-01-08, QE 2024-01-22, QE 2024-02-05, QE 2024-02-19, QE 2024-03-04, QE 2024-03-18
-
None
-
None
-
None
-
None
-
None
-
None
-
None
After updating to Visual Studio ver. 17.4.3 there are some compilation errors that seem related to SERVER-65148, the error shown when trying to build is the following:
> ninja install-core
[1/4] Compiled build\debug\third_party\mozjs\platform\x86_64\windows\build\jit\Unified_cpp_js_src_jit2.obj
FAILED: build/debug/third_party/mozjs/platform/x86_64/windows/build/jit/Unified_cpp_js_src_jit2.obj
cmd.exe /c del /q build\debug\third_party\mozjs\platform\x86_64\windows\build\jit\Unified_cpp_js_src_jit2.obj >nul 2>&1 & cl @build\debug\third_party\mozjs\platform\x86_64\windows\build\jit\Unified_cpp_js_src_jit2.obj.rsp
src\third_party\mozjs\extract\js\src\jit/CacheIRCompiler.h(1135,3): fatal error C1001: Internal compiler error.
(compiler file '_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\main.c', line 2018)
To work around this problem, try simplifying or changing the program near the locations listed above.
If possible please provide a repro here: https://developercommunity.visualstudio.com
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
void call() {
^
src\third_party\mozjs\extract\js\src\jit/CacheIRCompiler.cpp(6394,64): note: see reference to function template instantiation '<Unknown>' being compiled
callvm.call<FnBigIntString, BigIntStringEqual<NotEqual>>();
^
ninja: build stopped: subcommand failed.
The following diff solves the issue:
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 971cf006f8a..92bfca7d151 100644
--- a/src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp
+++ b/src/third_party/mozjs/extract/js/src/jit/CacheIRCompiler.cpp
@@ -6373,66 +6373,41 @@ bool CacheIRCompiler::emitCompareBigIntStringResult(JSOp op,
using FnStringBigInt =
bool (*)(JSContext*, HandleString, HandleBigInt, bool*);
- switch (op) {
- case JSOp::Eq: {
#ifndef _MSC_VER
constexpr auto Equal = EqualityKind::Equal;
+ constexpr auto NotEqual = EqualityKind::NotEqual;
+ constexpr auto LessThan = ComparisonKind::LessThan;
+ constexpr auto GreaterThanOrEqual = ComparisonKind::GreaterThanOrEqual;
#else
// The static_cast works around an internal compiler error in MSVC.
constexpr auto Equal = static_cast<bool>(EqualityKind::Equal);
+ constexpr auto NotEqual = static_cast<bool>(EqualityKind::NotEqual);
+ constexpr auto LessThan = static_cast<bool>(ComparisonKind::LessThan);
+ constexpr auto GreaterThanOrEqual =
+ static_cast<bool>(ComparisonKind::GreaterThanOrEqual);
#endif
+ switch (op) {
+ case JSOp::Eq: {
callvm.call<FnBigIntString, BigIntStringEqual<Equal>>();
break;
}
case JSOp::Ne: {
-#ifndef _MSC_VER
- constexpr auto NotEqual = EqualityKind::NotEqual;
-#else
- // The static_cast works around an internal compiler error in MSVC.
- constexpr auto NotEqual = static_cast<bool>(EqualityKind::NotEqual);
-#endif
callvm.call<FnBigIntString, BigIntStringEqual<NotEqual>>();
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;
}
Basically moving the ifdef's before the switch.
- is depended on by
-
WT-11718 Update WT_READ_ONCE to use _Generics on Windows
-
- Closed
-