Skip to content

ARM64/ARM64EC runtime assertions in P0811R3_midpoint_lerp #5685

Description

With the latest available Windows 11 SDK (10.0.26100.4188), P0811R3_midpoint_lerp fails assert(check_feexcept(0)) at runtime on ARM64:

{
ExceptGuard except;
assert(bit_cast<float_bit_type>(lerp(2e+38f, 1e+38f, 4.0f)) == bit_cast<float_bit_type>(-2e+38f));
assert(check_feexcept(0));
}

Click to expand test logs for the 2 failing configurations:
C:\GitHub\STL\out\ARM64>python %STL%\tools\scripts\print_failures.py testing_ARM64.log
code: FAIL
name: std :: tests/P0811R3_midpoint_lerp:34
output: Build setup steps:
Build steps:
Command: "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostARM64\ARM64\cl.EXE" "C:\GitHub\STL\tests\std\tests\P0811R3_midpoint_lerp\test.cpp" "-IC:\GitHub\STL\out\ARM64\out\inc" "-IC:\GitHub\STL\llvm-project\libcxx\test\support" "-IC:\GitHub\STL\tests\std\include" "/nologo" "/Od" "/W4" "/w14061" "/w14242" "/w14265" "/w14582" "/w14583" "/w14587" "/w14588" "/w14749" "/w14841" "/w14842" "/w15038" "/w15214" "/w15215" "/w15216" "/w15217" "/w15262" "/sdl" "/WX" "/D_ENABLE_STL_INTERNAL_CHECK" "/bigobj" "/FIforce_include.hpp" "/w14365" "/w14668" "/w15267" "/D_ENFORCE_FACET_SPECIALIZATIONS=1" "/w14640" "/Zc:threadSafeInit-" "/EHsc" "/MTd" "/D_ITERATOR_DEBUG_LEVEL=0" "/std:c++latest" "/permissive-" "/fp:strict" "/Od" "-FeC:\GitHub\STL\out\ARM64\tests\std\tests\P0811R3_midpoint_lerp\Output\34\P0811R3_midpoint_lerp.exe" "-link" "-LIBPATH:C:\GitHub\STL\out\ARM64\out\lib\arm64" "-LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\lib\arm64" "/MANIFEST:EMBED"
Exit Code: 0 (0x0)
Standard Output:
--
test.cpp
--

Intellisense response file steps:
Test setup steps:
Test steps:
Test step failed unexpectedly.
Command: "C:\GitHub\STL\out\ARM64\tests\std\tests\P0811R3_midpoint_lerp\Output\34\P0811R3_midpoint_lerp.exe"
Exit Code: 3 (0x3)
Standard Error:
--
Assertion failed: check_feexcept(0), file C:\GitHub\STL\tests\std\tests\P0811R3_midpoint_lerp\test.cpp, line 1052
abort() has been called--


==================================================
code: FAIL
name: std :: tests/P0811R3_midpoint_lerp:35
output: Build setup steps:
Build steps:
Command: "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostARM64\ARM64\cl.EXE" "C:\GitHub\STL\tests\std\tests\P0811R3_midpoint_lerp\test.cpp" "-IC:\GitHub\STL\out\ARM64\out\inc" "-IC:\GitHub\STL\llvm-project\libcxx\test\support" "-IC:\GitHub\STL\tests\std\include" "/nologo" "/Od" "/W4" "/w14061" "/w14242" "/w14265" "/w14582" "/w14583" "/w14587" "/w14588" "/w14749" "/w14841" "/w14842" "/w15038" "/w15214" "/w15215" "/w15216" "/w15217" "/w15262" "/sdl" "/WX" "/D_ENABLE_STL_INTERNAL_CHECK" "/bigobj" "/FIforce_include.hpp" "/w14365" "/w14668" "/w15267" "/D_ENFORCE_FACET_SPECIALIZATIONS=1" "/w14640" "/Zc:threadSafeInit-" "/EHsc" "/MTd" "/D_ITERATOR_DEBUG_LEVEL=0" "/std:c++latest" "/permissive-" "/fp:strict" "/O2" "-FeC:\GitHub\STL\out\ARM64\tests\std\tests\P0811R3_midpoint_lerp\Output\35\P0811R3_midpoint_lerp.exe" "-link" "-LIBPATH:C:\GitHub\STL\out\ARM64\out\lib\arm64" "-LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\lib\arm64" "/MANIFEST:EMBED"
Exit Code: 0 (0x0)
Standard Output:
--
test.cpp
--
Standard Error:
--
cl : Command line warning D9025 : overriding '/Od' with '/O2'
--

Intellisense response file steps:
Test setup steps:
Test steps:
Test step failed unexpectedly.
Command: "C:\GitHub\STL\out\ARM64\tests\std\tests\P0811R3_midpoint_lerp\Output\35\P0811R3_midpoint_lerp.exe"
Exit Code: 3 (0x3)
Standard Error:
--
Assertion failed: check_feexcept(0), file C:\GitHub\STL\tests\std\tests\P0811R3_midpoint_lerp\test.cpp, line 1052
abort() has been called--

I'm going to skip these asserts for ARM64, but we should investigate the root cause.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ARM64Related to the ARM64 architectureARM64ECI can't believe it's not x64!testRelated to test code

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions