Skip to content

Commit ea9dd82

Browse files
committed
Add a regression test
1 parent df75005 commit ea9dd82

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

clang/test/CodeGenCXX/ms-mangle-requires.cpp

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// RUN: %clang_cc1 -std=c++20 -triple=x86_64-windows-msvc -Wno-defaulted-function-deleted -fms-compatibility -fms-extensions -emit-llvm %s -o - | FileCheck %s
22

3-
namespace CWG2369_Regression {
3+
namespace CWG2369 {
4+
5+
namespace Regression1 {
46

57
template <class, class Up>
68
using compare_three_way_result_t = Up::type;
@@ -24,6 +26,34 @@ RuntimeModeArgs foo() {
2426
return {};
2527
}
2628

27-
// CHECK: ?foo@CWG2369_Regression@@YA?AURuntimeModeArgs@1@XZ
29+
// CHECK: ?foo@Regression1@CWG2369@@YA?AURuntimeModeArgs@12@XZ
30+
31+
} // namespace Regression1
32+
33+
namespace Regression2 {
34+
35+
template <class _Tp>
36+
constexpr _Tp * __to_address(_Tp *) {
37+
return nullptr;
38+
}
39+
40+
template <class _Ip>
41+
concept contiguous_iterator = requires(_Ip __i) { __to_address(__i); };
42+
43+
struct basic_string_view {
44+
template <contiguous_iterator _It>
45+
basic_string_view(_It, _It);
46+
};
47+
48+
const char *str;
49+
void sv() { basic_string_view(str, str); }
50+
51+
void m_fn2() {
52+
const char __trans_tmp_1 = *__to_address(&__trans_tmp_1);
53+
}
54+
55+
// CHECK: define {{.*}} @"??$__to_address@$$CBD@Regression2@CWG2369@@YAPEBDPEBD@Z"
56+
57+
} // namespace Regression2
2858

2959
}

0 commit comments

Comments
 (0)