================
@@ -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:
It is possible to mix clang headers and named modules. My question is to
understand the underlying problem. The code snippet is to avoid something to
occur in the lexical lookup table. And my question is why we can't filter
declarations in lexical lookup table.
If we can't understand this, we are not going to fix the real problem.
https://github.com/llvm/llvm-project/pull/202248
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits