diff --git a/stl/inc/xcall_once.h b/stl/inc/xcall_once.h index 8874e232f81..7d484899160 100644 --- a/stl/inc/xcall_once.h +++ b/stl/inc/xcall_once.h @@ -40,7 +40,8 @@ union _Immortalizer_impl { // constructs _Ty, never destroys _Ty _Storage; }; -#if defined(_M_CEE) || defined(_M_ARM64EC) || defined(_M_HYBRID) +#if defined(_M_CEE) || defined(_M_ARM64EC) || defined(_M_HYBRID) \ + || defined(__clang__) // TRANSITION, avoid /ALTERNATENAME for Clang, see GH-5224 #define _WINDOWS_API __stdcall #define _RENAME_WINDOWS_API(_Api) _Api##_clr #else // ^^^ use forwarders / use /ALTERNATENAME vvv diff --git a/tests/std/tests/GH_002030_asan_annotate_string/env.lst b/tests/std/tests/GH_002030_asan_annotate_string/env.lst index 08acc3dc792..9ea027b4346 100644 --- a/tests/std/tests/GH_002030_asan_annotate_string/env.lst +++ b/tests/std/tests/GH_002030_asan_annotate_string/env.lst @@ -9,32 +9,50 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST PM_CL="/Zi /wd4611 /w14640 /Zc:threadSafeInit-" PM_LINK="/debug" RUNALL_CROSSLIST -PM_CL="-fsanitize=address" -PM_CL="/D_ANNOTATE_STRING" -RUNALL_CROSSLIST -PM_CL="/BE /c /EHsc /MD /std:c++14" -PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive-" -PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive-" -PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive-" -PM_CL="/EHsc /MD /std:c++14" -PM_CL="/EHsc /MD /std:c++14 /Zc:char8_t" -PM_CL="/EHsc /MD /std:c++17" -PM_CL="/EHsc /MD /std:c++17 /Zc:char8_t" -PM_CL="/EHsc /MD /std:c++20" -PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" -PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-" -PM_CL="/EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor" -PM_CL="/EHsc /MDd /std:c++17 /permissive-" -PM_CL="/EHsc /MDd /std:c++20 /permissive-" -PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-" -PM_CL="/EHsc /MDd /std:c++latest /permissive-" -PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-" -PM_CL="/EHsc /MT /std:c++latest /permissive-" -PM_CL="/EHsc /MTd /std:c++latest /permissive" -PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-" -PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict" -PM_CL="/EHsc /MTd /std:c++latest /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++17" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++latest /permissive- /fp:strict" +PM_CL="-fsanitize=address /BE /c /EHsc /MD /std:c++14" +PM_CL="-fsanitize=address /BE /c /EHsc /MDd /std:c++17 /permissive-" +PM_CL="-fsanitize=address /BE /c /EHsc /MT /std:c++20 /permissive-" +PM_CL="-fsanitize=address /BE /c /EHsc /MTd /std:c++latest /permissive-" +PM_CL="-fsanitize=address /EHsc /MD /std:c++14" +PM_CL="-fsanitize=address /EHsc /MD /std:c++17" +PM_CL="-fsanitize=address /EHsc /MD /std:c++20" +PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++17 /permissive-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++20 /permissive-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive-" +PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive-" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /fp:strict" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MD /std:c++14" +PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MDd /std:c++17 /permissive-" +PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MT /std:c++20 /permissive-" +PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MTd /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++14" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++14 /Zc:char8_t" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++17" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++17 /Zc:char8_t" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++20" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor" +PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++17 /permissive-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++20 /permissive-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MT /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive" +PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive- /fp:strict" +PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive-" +# TRANSITION, we don't use /ALTERNATENAME for Clang (see GH-5224) so we cannot test /D_ANNOTATE_STRING without -fsanitize=address +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14" +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++17" +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-" +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++latest /permissive- /fp:strict" diff --git a/tests/std/tests/GH_002030_asan_annotate_vector/env.lst b/tests/std/tests/GH_002030_asan_annotate_vector/env.lst index 4182c344a2e..e644474d29a 100644 --- a/tests/std/tests/GH_002030_asan_annotate_vector/env.lst +++ b/tests/std/tests/GH_002030_asan_annotate_vector/env.lst @@ -8,30 +8,48 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST PM_CL="/Zi /wd4611 /w14640 /Zc:threadSafeInit-" PM_LINK="/debug" RUNALL_CROSSLIST -PM_CL="-fsanitize=address" -PM_CL="/D_ANNOTATE_VECTOR" -RUNALL_CROSSLIST -PM_CL="/BE /c /EHsc /MD /std:c++14" -PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive-" -PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive-" -PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive-" -PM_CL="/EHsc /MD /std:c++14" -PM_CL="/EHsc /MD /std:c++17" -PM_CL="/EHsc /MD /std:c++20" -PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" -PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-" -PM_CL="/EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor" -PM_CL="/EHsc /MDd /std:c++17 /permissive-" -PM_CL="/EHsc /MDd /std:c++20 /permissive-" -PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-" -PM_CL="/EHsc /MDd /std:c++latest /permissive-" -PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-" -PM_CL="/EHsc /MT /std:c++latest /permissive-" -PM_CL="/EHsc /MTd /std:c++latest /permissive" -PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-" -PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict" -PM_CL="/EHsc /MTd /std:c++latest /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++17" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++latest /permissive- /fp:strict" +PM_CL="-fsanitize=address /BE /c /EHsc /MD /std:c++14" +PM_CL="-fsanitize=address /BE /c /EHsc /MDd /std:c++17 /permissive-" +PM_CL="-fsanitize=address /BE /c /EHsc /MT /std:c++20 /permissive-" +PM_CL="-fsanitize=address /BE /c /EHsc /MTd /std:c++latest /permissive-" +PM_CL="-fsanitize=address /EHsc /MD /std:c++14" +PM_CL="-fsanitize=address /EHsc /MD /std:c++17" +PM_CL="-fsanitize=address /EHsc /MD /std:c++20" +PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++17 /permissive-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++20 /permissive-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-" +PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive-" +PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive-" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /fp:strict" +PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MD /std:c++14" +PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MDd /std:c++17 /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MT /std:c++20 /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MTd /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++14" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++17" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++20" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++17 /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++20 /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MT /std:c++latest /permissive-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive- /fp:strict" +PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive-" +# TRANSITION, we don't use /ALTERNATENAME for Clang (see GH-5224) so we cannot test /D_ANNOTATE_VECTOR without -fsanitize=address +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14" +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++17" +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-" +PM_COMPILER="clang-cl" PM_CL="-fsanitize=address -fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++latest /permissive- /fp:strict"