This was incidentally fixed by r13-806-g221acd67ca50f8. PR c++/99209
gcc/testsuite/ChangeLog: * g++.dg/cpp2a/lambda-uneval17.C: New test. --- gcc/testsuite/g++.dg/cpp2a/lambda-uneval17.C | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp2a/lambda-uneval17.C diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-uneval17.C b/gcc/testsuite/g++.dg/cpp2a/lambda-uneval17.C new file mode 100644 index 00000000000..74e0f876371 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp2a/lambda-uneval17.C @@ -0,0 +1,17 @@ +// PR c++/99209 +// { dg-do compile { target c++20 } } + +constexpr char f(...) = delete; +constexpr decltype(auto) f_adl(auto a) { return f(a); } + +namespace A { + constexpr char f(auto) { return 'A'; } + template<char TemplateParam = f_adl([]{})> void g(char FunctionParam = f_adl([]{})) { + char Local = f_adl([]{}); + } +} + +namespace B { + constexpr char f(auto) = delete; + void call() { A::g(); } +} -- 2.37.3.518.g79f2338b37