Improves RecursiveASTVisitor:
* refactors code in DEF_TRAVERSE_DECL() into
TraverseDeclContextHelper() to reduce code bloat and facilitate
reuse.
* makes the order of traversing a FunctionDecl (including its
subclasses)'s children more natural: before the function parameters
are visited after the function body; now they are visited after the
function type and before the function body.
* fixes a double count for function return type and arguments.
Reviewed by chandlerc and csilvers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106236
91177308-0d34-0410-b5e6-
96231b3b80d8