https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114242
--- Comment #4 from Andreas Fertig <src at andyf dot de> --- Thanks for looking into the issue! While CWG 2585 tweaks the wording, my reading is that the code should be valid even with C++20. Regardless of that, without the lambda, the code compiles and uses a custom allocator. After playing with the test case, I could reduce it to having only a coroutine-lambda with a promise_type that has a custom operator new: https://compiler-explorer.com/z/W53nKsfxG Sorry for not having that done initially! I suspect this case wasn't implemented (because it isn't obvious?).