On Tue, Jan 15, 2019 at 5:54 PM Stephen Kelly via cfe-commits <cfe-commits@lists.llvm.org> wrote: > > Author: steveire > Date: Tue Jan 15 14:50:37 2019 > New Revision: 351269 > > URL: http://llvm.org/viewvc/llvm-project?rev=351269&view=rev > Log: > Re-order overrides in FunctionDecl dump > > Output all content which is local to the FunctionDecl before traversing > to child AST nodes. > > This is necessary so that all of the part which is local to the > FunctionDecl can be split into a different method. > > Reviewers: aaron.ballman > > Differential Revision: https://reviews.llvm.org/D55083 > > Modified: > cfe/trunk/lib/AST/ASTDumper.cpp > cfe/trunk/test/AST/ast-dump-funcs.cpp > > Modified: cfe/trunk/lib/AST/ASTDumper.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTDumper.cpp?rev=351269&r1=351268&r2=351269&view=diff > ============================================================================== > --- cfe/trunk/lib/AST/ASTDumper.cpp (original) > +++ cfe/trunk/lib/AST/ASTDumper.cpp Tue Jan 15 14:50:37 2019 > @@ -612,20 +612,6 @@ void ASTDumper::VisitFunctionDecl(const > } > } > > - if (const FunctionTemplateSpecializationInfo *FTSI = > - D->getTemplateSpecializationInfo()) > - dumpTemplateArgumentList(*FTSI->TemplateArguments); > - > - if (!D->param_begin() && D->getNumParams()) > - dumpChild([=] { OS << "<<NULL params x " << D->getNumParams() << ">>"; > }); > - else > - for (const ParmVarDecl *Parameter : D->parameters()) > - dumpDecl(Parameter); > - > - if (const CXXConstructorDecl *C = dyn_cast<CXXConstructorDecl>(D)) > - for (const auto *I : C->inits()) > - dumpCXXCtorInitializer(I); > - > if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(D)) { > if (MD->size_overridden_methods() != 0) { > auto dumpOverride = [=](const CXXMethodDecl *D) { > @@ -649,6 +635,22 @@ void ASTDumper::VisitFunctionDecl(const > } > } > > + if (const FunctionTemplateSpecializationInfo *FTSI = > + D->getTemplateSpecializationInfo()) > + dumpTemplateArgumentList(*FTSI->TemplateArguments); > + > + if (!D->param_begin() && D->getNumParams()) > + dumpChild([=] { OS << "<<NULL params x " << D->getNumParams() << ">>"; > }); > + else > + for (const ParmVarDecl *Parameter : D->parameters()) > + dumpDecl(Parameter); > + > + if (const CXXConstructorDecl *C = dyn_cast<CXXConstructorDecl>(D))
Missed this nit from the review. > + for (CXXConstructorDecl::init_const_iterator I = C->init_begin(), > + E = C->init_end(); > + I != E; ++I) > + dumpCXXCtorInitializer(*I); This accidentally reverts what you did in r351268. ~Aaron > + > if (D->doesThisDeclarationHaveABody()) > dumpStmt(D->getBody()); > } > > Modified: cfe/trunk/test/AST/ast-dump-funcs.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-funcs.cpp?rev=351269&r1=351268&r2=351269&view=diff > ============================================================================== > --- cfe/trunk/test/AST/ast-dump-funcs.cpp (original) > +++ cfe/trunk/test/AST/ast-dump-funcs.cpp Tue Jan 15 14:50:37 2019 > @@ -56,10 +56,10 @@ struct S { > struct T : S { // T is not referenced, but S is > void f(float, int = 100) override; > // CHECK: CXXMethodDecl 0x{{[^ ]*}} <line:[[@LINE-1]]:3, col:28> col:8 f > 'void (float, int)' > + // CHECK-NEXT: Overrides: [ 0x{{[^ ]*}} S::f 'void (float, int)' ] > // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} <col:10> col:15 'float' > // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} <col:17, col:23> col:21 'int' cinit > // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} <col:23> 'int' 100 > - // CHECK-NEXT: Overrides: [ 0x{{[^ ]*}} S::f 'void (float, int)' ] > // CHECK-NEXT: OverrideAttr > > // CHECK: CXXConstructorDecl 0x{{[^ ]*}} <line:[[@LINE-9]]:8> col:8 > implicit T 'void (const T &)' inline default_delete noexcept-unevaluated > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits