[clang] Fix crash and improve diagnostics for void lambda returns (PR #188904)

Kartik Ohlan via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 1 07:45:53 PDT 2026


================
@@ -18,7 +18,8 @@ void infer_void_return_type(int i) {
     switch (x) {
     case 0: return get<void>();
     case 1: return;
-    case 2: return { 1, 2.0 }; // expected-error {{cannot deduce lambda return type from initializer list}}
+    case 2: return { 1, 2.0 }; // expected-error {{cannot deduce lambda return type from initializer list}} \
+                                   // cxx11-error {{void lambda should not return a value}}
----------------
Ko496-glitch wrote:

do you think if we put a placeholder if(isa_and_nonnull<InitListExpr>(RetValExp) &&
    !FnRetType->isDependentType())   it would work  ? 
we just say only run the check if you know the return type ? 

https://github.com/llvm/llvm-project/pull/188904


More information about the cfe-commits mailing list