================
@@ -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

Reply via email to