// 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 namespace CWG2369 { namespace Regression1 { template using compare_three_way_result_t = Up::type; struct sfinae_assign_base {}; template concept is_derived_from_optional = requires(Tp param) { [](Up) {}(param); }; template requires(is_derived_from_optional && [](W) { return true; }(Up())) compare_three_way_result_t operator<=>(Tp, Up); struct RuntimeModeArgs { auto operator<=>(const RuntimeModeArgs &) const = default; sfinae_assign_base needs_admin; }; RuntimeModeArgs foo() { return {}; } // CHECK: ?foo@Regression1@CWG2369@@YA?AURuntimeModeArgs@12@XZ } // namespace Regression1 namespace Regression2 { template constexpr _Tp * __to_address(_Tp *) { return nullptr; } template concept contiguous_iterator = requires(_Ip __i) { __to_address(__i); }; struct basic_string_view { template basic_string_view(_It, _It); }; const char *str; void sv() { basic_string_view(str, str); } void m_fn2() { const char __trans_tmp_1 = *__to_address(&__trans_tmp_1); } // CHECK: define {{.*}} @"??$__to_address@$$CBD@Regression2@CWG2369@@YAPEBDPEBD@Z" } // namespace Regression2 } namespace GH147650 { template int b; template void f() requires requires { [] { (void)b; }; } {} void test() { f<42>(); } // CHECK-LABEL:define {{.*}} void @"??$f@$0CK@@GH147650@@YAXXZ"() }