-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Build tests for ARM64EC pipeline #5521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
tests/std/tests/GH_002206_unreserved_names/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
// Windows SDK 10.0.26100.0 will avoid that error, but we'll need to investigate why user.ixx emits: | ||
// "error C2678: binary '==': no operator found which takes a left-hand operand of type 'const std::string' | ||
// (or there is no acceptable conversion)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This error C2678 turns out to be unaffected by architecture or Windows SDK version, and affected by the execution charset: error C2678 manifests if and only if the execution charset is not self-synchronizing (e.g. cp932, cp936). With cp1252 or UTF-8, the test compiles successfully.
No change requested for this PR,but we could maybe file a bug report against the compiler.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like something in some non-_Is_execution_charset_self_synchronizing()
branch in <format>
fails to compile.
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
Thanks for increasing our Azure spending significantly! 📈 💵 🤑 |
Closes #2310
<Windows.h>
(possibly via a centralized header, e.g.test_death.hpp
), and produce warning C28301:C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(3209) : warning C28301: No annotations for first declaration of '_InterlockedCompareExchange128'. See c:\program files\microsoft visual studio\2022\preview\vc\tools\msvc\14.44.35207\include\intrin0.inl.h(185).
/wd28301
compiler option. It might also be possible to instead add a pragma to each affected file.#pragma intrinsic(fabsf)
in<corecrt_math.h>
for ARM64EC, which seems to cause problems in several tests.GH_002206_unreserved_names
needs to avoid definingintrinsic
as a macro.error LNK2019: unresolved external symbol fabsf referenced in function #fabsf$exit_thunk (EC Symbol)
.VSO_1775715_user_defined_modules
is still failing withtests\std\tests\VSO_1775715_user_defined_modules\user.ixx(24): error C2678: binary '==': no operator found which takes a left-hand operand of type 'const std::string' (or there is no acceptable conversion)
.#pragma function(fabsf)
in<corecrt_math.h>
, which seems to fix the abovementioned problems, but breaks Clang 19. This is LLVM-116256 and fixed in Clang 20.GH_001103_countl_zero_correctness
needs to update its preprocessor condition to exclude ARM64EC. I've copied the condition from<__msvc_bit_utils.hpp>
.