@@ -68,11 +68,11 @@ constexpr void local_test() {
68
68
assert (x.column () == 37 );
69
69
#endif // ^^^ C1XX ^^^
70
70
#if _USE_DETAILED_FUNCTION_NAME_IN_SOURCE_LOCATION
71
- #ifdef __EDG__
72
- assert (x.function_name () == " void local_test()" sv);
73
- #else // ^^^ EDG / Other vvv
71
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
72
+ assert (x.function_name () == " void __cdecl local_test(void) " sv || x. function_name () == " void local_test()" sv);
73
+ #else // ^^^ workaround / no workaround vvv
74
74
assert (x.function_name () == " void __cdecl local_test(void)" sv);
75
- #endif // ^^^ Other ^^^
75
+ #endif // ^^^ no workaround ^^^
76
76
#else // ^^^ detailed / basic vvv
77
77
assert (x.function_name () == " local_test" sv);
78
78
#endif // ^^^ basic ^^^
@@ -84,11 +84,11 @@ constexpr void argument_test(
84
84
assert (x.line () == line);
85
85
assert (x.column () == column);
86
86
#if _USE_DETAILED_FUNCTION_NAME_IN_SOURCE_LOCATION
87
- #ifdef __EDG__
88
- assert (x.function_name () == " bool test()" sv);
89
- #else // ^^^ EDG / Other vvv
87
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
88
+ assert (x.function_name () == " bool __cdecl test(void) " sv || x. function_name () == " bool test()" sv);
89
+ #else // ^^^ workaround / no workaround vvv
90
90
assert (x.function_name () == " bool __cdecl test(void)" sv);
91
- #endif // ^^^ Other ^^^
91
+ #endif // ^^^ no workaround ^^^
92
92
#else // ^^^ detailed / basic vvv
93
93
assert (x.function_name () == " test" sv);
94
94
#endif // ^^^ basic ^^^
@@ -110,11 +110,12 @@ constexpr void sloc_constructor_test() {
110
110
} else
111
111
#endif // ^^^ workaround ^^^
112
112
{
113
- #ifdef __EDG__
114
- assert (x.loc .function_name () == " void sloc_constructor_test()" sv);
115
- #else // ^^^ EDG / Other vvv
113
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
114
+ assert (x.loc .function_name () == " void __cdecl sloc_constructor_test(void)" sv
115
+ || x.loc .function_name () == " void sloc_constructor_test()" sv);
116
+ #else // ^^^ workaround / no workaround vvv
116
117
assert (x.loc .function_name () == " void __cdecl sloc_constructor_test(void)" sv);
117
- #endif // ^^^ Other ^^^
118
+ #endif // ^^^ no workaround ^^^
118
119
}
119
120
#else // ^^^ detailed / basic vvv
120
121
#if !defined(__clang__) && !defined(__EDG__) // TRANSITION, VSO-1285783
@@ -140,11 +141,11 @@ constexpr void different_constructor_test() {
140
141
assert (x.loc .column () == 5 );
141
142
#endif // ^^^ C1XX ^^^
142
143
#if _USE_DETAILED_FUNCTION_NAME_IN_SOURCE_LOCATION
143
- #ifdef __EDG__
144
- assert (x.loc .function_name () == " s::s(int)" sv);
145
- #else // ^^^ EDG / Other vvv
144
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
145
+ assert (x.loc .function_name () == THISCALL_OR_CDECL " s::s(int) " sv || x. loc . function_name () == " s::s(int)" sv);
146
+ #else // ^^^ workaround / no workaround vvv
146
147
assert (x.loc .function_name () == THISCALL_OR_CDECL " s::s(int)" sv);
147
- #endif // ^^^ Other ^^^
148
+ #endif // ^^^ no workaround ^^^
148
149
#else // ^^^ detailed / basic vvv
149
150
assert (x.loc .function_name () == " s" sv);
150
151
#endif // ^^^ basic ^^^
@@ -166,11 +167,12 @@ constexpr void sub_member_test() {
166
167
} else
167
168
#endif // ^^^ workaround ^^^
168
169
{
169
- #ifdef __EDG__
170
- assert (s.x .loc .function_name () == " void sub_member_test()" sv);
171
- #else // ^^^ EDG / Other vvv
170
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
171
+ assert (s.x .loc .function_name () == " void __cdecl sub_member_test(void)" sv
172
+ || s.x .loc .function_name () == " void sub_member_test()" sv);
173
+ #else // ^^^ workaround / no workaround vvv
172
174
assert (s.x .loc .function_name () == " void __cdecl sub_member_test(void)" sv);
173
- #endif // ^^^ Other ^^^
175
+ #endif // ^^^ no workaround ^^^
174
176
}
175
177
#else // ^^^ detailed / basic vvv
176
178
#if !defined(__clang__) && !defined(__EDG__) // TRANSITION, VSO-1285783
@@ -194,11 +196,12 @@ constexpr void sub_member_test() {
194
196
assert (s_i.x .loc .column () == 5 );
195
197
#endif // ^^^ C1XX ^^^
196
198
#if _USE_DETAILED_FUNCTION_NAME_IN_SOURCE_LOCATION
197
- #ifdef __EDG__
198
- assert (s_i.x .loc .function_name () == " s2::s2(int)" sv);
199
- #else // ^^^ EDG / Other vvv
199
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
200
+ assert (s_i.x .loc .function_name () == THISCALL_OR_CDECL " s2::s2(int)" sv
201
+ || s_i.x .loc .function_name () == " s2::s2(int)" sv);
202
+ #else // ^^^ workaround / no workaround vvv
200
203
assert (s_i.x .loc .function_name () == THISCALL_OR_CDECL " s2::s2(int)" sv);
201
- #endif // ^^^ Other ^^^
204
+ #endif // ^^^ no workaround ^^^
202
205
#else // ^^^ detailed / basic vvv
203
206
assert (s_i.x .loc .function_name () == " s2" sv);
204
207
#endif // ^^^ basic ^^^
@@ -223,11 +226,11 @@ constexpr void lambda_test() {
223
226
assert (x2.column () == 50 );
224
227
#endif // ^^^ C1XX ^^^
225
228
#if _USE_DETAILED_FUNCTION_NAME_IN_SOURCE_LOCATION
226
- #ifdef __EDG__
227
- assert (x1.function_name () == " void lambda_test()" sv);
228
- #else // ^^^ EDG / Other vvv
229
+ #ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output
230
+ assert (x1.function_name () == " void __cdecl lambda_test(void) " sv || x1. function_name () == " void lambda_test()" sv);
231
+ #else // ^^^ workaround / no workaround vvv
229
232
assert (x1.function_name () == " void __cdecl lambda_test(void)" sv);
230
- #endif // ^^^ Other ^^^
233
+ #endif // ^^^ no workaround ^^^
231
234
#else // ^^^ detailed / basic vvv
232
235
assert (x1.function_name () == " lambda_test" sv);
233
236
#endif // ^^^ basic ^^^
@@ -241,7 +244,9 @@ constexpr void lambda_test() {
241
244
#elif defined(__clang__) // ^^^ basic / detailed Clang vvv
242
245
assert (fun2 == " auto " THISCALL_OR_CDECL " lambda_test()::(anonymous class)::operator()(void) const" sv);
243
246
#elif defined(__EDG__) // ^^^ detailed Clang / detailed __EDG__ vvv
244
- assert (fun2 == " lambda []()->auto::operator()()->auto" sv);
247
+ // TRANSITION, EDG is changing to resemble C1XX's output somewhat more closely
248
+ assert (fun2 == THISCALL_OR_CDECL " lambda [](void)->auto::operator()(void)->auto" sv
249
+ || fun2 == " lambda []()->auto::operator()()->auto" sv);
245
250
#else // ^^^ detailed __EDG__ / detailed C1XX vvv
246
251
assert (fun2.starts_with (" struct std::source_location " THISCALL_OR_CDECL " lambda_test::<lambda_" sv));
247
252
assert (fun2.ends_with (" ::operator ()(void) const" sv));
@@ -270,7 +275,9 @@ constexpr void function_template_test() {
270
275
#elif defined(__clang__) // ^^^ basic / detailed Clang vvv
271
276
assert (x1.function_name () == " source_location __cdecl function_template(void) [T = void]" sv);
272
277
#elif defined(__EDG__) // ^^^ detailed Clang / detailed __EDG__ vvv
273
- assert (x1.function_name () == " std::source_location function_template<void>()" sv);
278
+ // TRANSITION, EDG is changing to almost match C1XX's output
279
+ assert (x1.function_name () == " std::source_location __cdecl function_template<void>(void)" sv
280
+ || x1.function_name () == " std::source_location function_template<void>()" sv);
274
281
#else // ^^^ detailed __EDG__ / detailed C1XX vvv
275
282
assert (x1.function_name () == " struct std::source_location __cdecl function_template<void>(void)" sv);
276
283
#endif // ^^^ detailed C1XX ^^^
@@ -284,7 +291,9 @@ constexpr void function_template_test() {
284
291
#elif defined(__clang__) // ^^^ basic / detailed Clang vvv
285
292
assert (x2.function_name () == " source_location __cdecl function_template(void) [T = int]" sv);
286
293
#elif defined(__EDG__) // ^^^ detailed Clang / detailed __EDG__ vvv
287
- assert (x2.function_name () == " std::source_location function_template<int>()" sv);
294
+ // TRANSITION, EDG is changing to almost match C1XX's output
295
+ assert (x2.function_name () == " std::source_location __cdecl function_template<int>(void)" sv
296
+ || x2.function_name () == " std::source_location function_template<int>()" sv);
288
297
#else // ^^^ detailed __EDG__ / detailed C1XX vvv
289
298
assert (x2.function_name () == " struct std::source_location __cdecl function_template<int>(void)" sv);
290
299
#endif // ^^^ detailed C1XX ^^^
0 commit comments