Skip to content

Commit 2cef491

Browse files
authored
Maybe Clang _does_ work with ALTERNATENAME (#5098)
1 parent 5e0ddad commit 2cef491

File tree

3 files changed

+59
-95
lines changed

3 files changed

+59
-95
lines changed

stl/inc/xcall_once.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ union _Immortalizer_impl { // constructs _Ty, never destroys
4040
_Ty _Storage;
4141
};
4242

43-
#if defined(_M_CEE) || defined(_M_ARM64EC) || defined(_M_HYBRID) \
44-
|| defined(__clang__) // TRANSITION, Clang doesn't recognize /ALTERNATENAME, not yet reported
43+
#if defined(_M_CEE) || defined(_M_ARM64EC) || defined(_M_HYBRID)
4544
#define _WINDOWS_API __stdcall
4645
#define _RENAME_WINDOWS_API(_Api) _Api##_clr
4746
#else // ^^^ use forwarders / use /ALTERNATENAME vvv
Lines changed: 31 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,40 @@
11
# Copyright (c) Microsoft Corporation.
22
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
33

4-
# This test matrix is the usual test matrix, with all currently unsupported options removed, crossed with the ASan flags.
4+
# This test matrix is the usual test matrix, with all currently unsupported options removed, with
5+
# some additional /Zc:char8_t coverage, crossed with the ASan flags.
56

67
# TRANSITION, google/sanitizers#328: clang-cl does not support /MDd or /MTd with ASan
78
RUNALL_INCLUDE ..\prefix.lst
89
RUNALL_CROSSLIST
910
PM_CL="/Zi /wd4611 /w14640 /Zc:threadSafeInit-" PM_LINK="/debug"
1011
RUNALL_CROSSLIST
11-
PM_CL="-fsanitize=address /BE /c /EHsc /MD /std:c++14"
12-
PM_CL="-fsanitize=address /BE /c /EHsc /MDd /std:c++17 /permissive-"
13-
PM_CL="-fsanitize=address /BE /c /EHsc /MT /std:c++20 /permissive-"
14-
PM_CL="-fsanitize=address /BE /c /EHsc /MTd /std:c++latest /permissive-"
15-
PM_CL="-fsanitize=address /EHsc /MD /std:c++14"
16-
PM_CL="-fsanitize=address /EHsc /MD /std:c++17"
17-
PM_CL="-fsanitize=address /EHsc /MD /std:c++20"
18-
PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
19-
PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-"
20-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor"
21-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++17 /permissive-"
22-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++20 /permissive-"
23-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-"
24-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive-"
25-
PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-"
26-
PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive-"
27-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive"
28-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-"
29-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /fp:strict"
30-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive-"
31-
PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MD /std:c++14"
32-
PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MDd /std:c++17 /permissive-"
33-
PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MT /std:c++20 /permissive-"
34-
PM_CL="/D_ANNOTATE_STRING /BE /c /EHsc /MTd /std:c++latest /permissive-"
35-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++14"
36-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++14 /Zc:char8_t"
37-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++17"
38-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++17 /Zc:char8_t"
39-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++20"
40-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
41-
PM_CL="/D_ANNOTATE_STRING /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-"
42-
PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor"
43-
PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++17 /permissive-"
44-
PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++20 /permissive-"
45-
PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-"
46-
PM_CL="/D_ANNOTATE_STRING /EHsc /MDd /std:c++latest /permissive-"
47-
PM_CL="/D_ANNOTATE_STRING /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-"
48-
PM_CL="/D_ANNOTATE_STRING /EHsc /MT /std:c++latest /permissive-"
49-
PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive"
50-
PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-"
51-
PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive- /fp:strict"
52-
PM_CL="/D_ANNOTATE_STRING /EHsc /MTd /std:c++latest /permissive-"
53-
# TRANSITION, clang-cl does not support /alternatename so we cannot test /D_ANNOTATE_STRING without -fsanitize=address
54-
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"
55-
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"
56-
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-"
57-
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"
12+
PM_CL="-fsanitize=address"
13+
PM_CL="/D_ANNOTATE_STRING"
14+
RUNALL_CROSSLIST
15+
PM_CL="/BE /c /EHsc /MD /std:c++14"
16+
PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive-"
17+
PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive-"
18+
PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive-"
19+
PM_CL="/EHsc /MD /std:c++14"
20+
PM_CL="/EHsc /MD /std:c++14 /Zc:char8_t"
21+
PM_CL="/EHsc /MD /std:c++17"
22+
PM_CL="/EHsc /MD /std:c++17 /Zc:char8_t"
23+
PM_CL="/EHsc /MD /std:c++20"
24+
PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
25+
PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-"
26+
PM_CL="/EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor"
27+
PM_CL="/EHsc /MDd /std:c++17 /permissive-"
28+
PM_CL="/EHsc /MDd /std:c++20 /permissive-"
29+
PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-"
30+
PM_CL="/EHsc /MDd /std:c++latest /permissive-"
31+
PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-"
32+
PM_CL="/EHsc /MT /std:c++latest /permissive-"
33+
PM_CL="/EHsc /MTd /std:c++latest /permissive"
34+
PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-"
35+
PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict"
36+
PM_CL="/EHsc /MTd /std:c++latest /permissive-"
37+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14"
38+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++17"
39+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-"
40+
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"

tests/std/tests/GH_002030_asan_annotate_vector/env.lst

Lines changed: 27 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,30 @@ RUNALL_INCLUDE ..\prefix.lst
88
RUNALL_CROSSLIST
99
PM_CL="/Zi /wd4611 /w14640 /Zc:threadSafeInit-" PM_LINK="/debug"
1010
RUNALL_CROSSLIST
11-
PM_CL="-fsanitize=address /BE /c /EHsc /MD /std:c++14"
12-
PM_CL="-fsanitize=address /BE /c /EHsc /MDd /std:c++17 /permissive-"
13-
PM_CL="-fsanitize=address /BE /c /EHsc /MT /std:c++20 /permissive-"
14-
PM_CL="-fsanitize=address /BE /c /EHsc /MTd /std:c++latest /permissive-"
15-
PM_CL="-fsanitize=address /EHsc /MD /std:c++14"
16-
PM_CL="-fsanitize=address /EHsc /MD /std:c++17"
17-
PM_CL="-fsanitize=address /EHsc /MD /std:c++20"
18-
PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
19-
PM_CL="-fsanitize=address /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-"
20-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor"
21-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++17 /permissive-"
22-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++20 /permissive-"
23-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-"
24-
PM_CL="-fsanitize=address /EHsc /MDd /std:c++latest /permissive-"
25-
PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-"
26-
PM_CL="-fsanitize=address /EHsc /MT /std:c++latest /permissive-"
27-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive"
28-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-"
29-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive- /fp:strict"
30-
PM_CL="-fsanitize=address /EHsc /MTd /std:c++latest /permissive-"
31-
PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MD /std:c++14"
32-
PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MDd /std:c++17 /permissive-"
33-
PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MT /std:c++20 /permissive-"
34-
PM_CL="/D_ANNOTATE_VECTOR /BE /c /EHsc /MTd /std:c++latest /permissive-"
35-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++14"
36-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++17"
37-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++20"
38-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
39-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-"
40-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor"
41-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++17 /permissive-"
42-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++20 /permissive-"
43-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-"
44-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MDd /std:c++latest /permissive-"
45-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-"
46-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MT /std:c++latest /permissive-"
47-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive"
48-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-"
49-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive- /fp:strict"
50-
PM_CL="/D_ANNOTATE_VECTOR /EHsc /MTd /std:c++latest /permissive-"
51-
# TRANSITION, clang-cl does not support /alternatename so we cannot test /D_ANNOTATE_VECTOR without -fsanitize=address
52-
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"
53-
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"
54-
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-"
55-
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"
11+
PM_CL="-fsanitize=address"
12+
PM_CL="/D_ANNOTATE_VECTOR"
13+
RUNALL_CROSSLIST
14+
PM_CL="/BE /c /EHsc /MD /std:c++14"
15+
PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive-"
16+
PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive-"
17+
PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive-"
18+
PM_CL="/EHsc /MD /std:c++14"
19+
PM_CL="/EHsc /MD /std:c++17"
20+
PM_CL="/EHsc /MD /std:c++20"
21+
PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
22+
PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes-"
23+
PM_CL="/EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor"
24+
PM_CL="/EHsc /MDd /std:c++17 /permissive-"
25+
PM_CL="/EHsc /MDd /std:c++20 /permissive-"
26+
PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t-"
27+
PM_CL="/EHsc /MDd /std:c++latest /permissive-"
28+
PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog-"
29+
PM_CL="/EHsc /MT /std:c++latest /permissive-"
30+
PM_CL="/EHsc /MTd /std:c++latest /permissive"
31+
PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog-"
32+
PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict"
33+
PM_CL="/EHsc /MTd /std:c++latest /permissive-"
34+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14"
35+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++17"
36+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-"
37+
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"

0 commit comments

Comments
 (0)