[clang] [Clang][Modules] Fix generic lambda local capture mapping mismatch in template instantiation (PR #202248)

Chuanqi Xu via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 15 18:11:51 PDT 2026


================
@@ -3454,9 +3454,21 @@ uint64_t ASTWriter::WriteDeclContextLexicalBlock(ASTContext &Context,
   if (DC->decls_empty())
     return 0;
 
-  // In reduced BMI, we don't care the declarations in functions.
-  if (GeneratingReducedBMI && DC->isFunctionOrMethod())
-    return 0;
+  // In reduced BMI, we don't care the declarations in functions, unless they
+  // are templated functions, because their bodies may contain nested class/lambda
+  // definitions that are canonicalized and need mapping of local declarations.
+  if (GeneratingReducedBMI && DC->isFunctionOrMethod()) {
----------------
ChuanqiXu9 wrote:

We have to understand **why** we need these function local declarations in lexical lookup table to continue. 

I don't feel bad with AI. But the contributor need to understand what their patches did. I think this matches LLVM's guidelines. 

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


More information about the cfe-commits mailing list