https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93842
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed that clang really rejects the code: $ clang pr93842.cc -Wunused -std=c++14 -c pr93842.cc:4:20: error: variable 'ch' cannot be implicitly captured in a lambda with no capture-default specified [](auto) { return ch; }; // NOT OK ^ pr93842.cc:2:17: note: 'ch' declared here constexpr char ch = '='; ^ pr93842.cc:4:2: note: lambda expression begins here [](auto) { return ch; }; // NOT OK ^ pr93842.cc:4:2: warning: expression result unused [-Wunused-value] [](auto) { return ch; }; // NOT OK ^~~~~~~~~~~~~~~~~~~~~~~ 1 warning and 1 error generated. For the record, we print the warning since r8-3497-g281e6c1d8f1b4ca5.