sammccall added inline comments.
================ Comment at: clang/include/clang/AST/RecursiveASTVisitor.h:2107 - if (CXXConstructorDecl *Ctor = dyn_cast<CXXConstructorDecl>(D)) { - // Constructor initializers. ---------------- hokein wrote: > moving this part of code to `if (VisitBody)` seems like a different fix (and > I think it is reasonable, from the grammar, the ctor-initializer is part of > the function-body), can we separate it and add a test? I can do it as a separate patch before if you like, but it's NFC. Behavior only differs if there is an init list and VisitBody is false. However !VisitBody requires one of: - this is a declaration only => no init list - this is a defaulted function => no init list ================ Comment at: clang/unittests/Tooling/RecursiveASTVisitorTests/Templates.cpp:168 extern template int foo<3>(); // Explicit instantiation. Head traversed, body only with instantiations on. template int foo<4>(); ---------------- hokein wrote: > What does the Head mean? Within the function int foo<4>() { return 0; }. I've called `int foo<4>()` the "head" and `{return 0;}` the "body". The distinction is that the head was written, and the body was instantiated. are there better terms? (I'd probably like this "head" better than "declaration part" so maybe we should just define these terms in the shouldVisitTemplateInstantiations() comment) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D120504/new/ https://reviews.llvm.org/D120504 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits