================ @@ -985,6 +986,9 @@ class Analyzer { if (auto *Dtor = dyn_cast<CXXDestructorDecl>(CurrentCaller.CDecl)) followDestructor(dyn_cast<CXXRecordDecl>(Dtor->getParent()), Dtor); + if (auto *FD = dyn_cast<FunctionDecl>(CurrentCaller.CDecl)) + TrailingRequiresClause = FD->getTrailingRequiresClause(); ---------------- dougsonos wrote:
That's a good question. This is sufficient/correct for a couple of reasons: - This whole `RecursiveASTVisitor` subclass is called for one function/lambda/block at a time, and this (new) member `TrailingRequiresClause` is being set for that "top-level" function only. - Lambdas and blocks have overridden `Traverse` methods in order to skip their bodies -- which also mean we don't care about, and don't visit, their `requires` clauses. https://github.com/llvm/llvm-project/pull/114266 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits