arphaman added inline comments.
================ Comment at: include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h:69 + template <typename T, typename U, typename R, typename... P> + struct has_same_member_pointer_type<R (T::*)(P...), R (U::*)(P...)> + : std::true_type {}; ---------------- Why exactly is this template struct needed? ================ Comment at: include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h:75 + Derived &getDerived() { return *static_cast<Derived *>(this); } + ---------------- I don't think you need this since `getDerived` in RecursiveASTVisitor is already public. ================ Comment at: include/clang/AST/RecursiveASTVisitor.h:3212 #undef TRAVERSE_STMT -#undef TRAVERSE_STMT_BASE ---------------- Getting rid of `undef` is not ideal. You might want to extract these macros into one .def file that's included by both RecursiveASTVisitor.h and the LexicallyOrdered one. https://reviews.llvm.org/D37200 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits