[cfe-commits] r169865 - /cfe/trunk/lib/AST/StmtDumper.cpp
Sean Silva
silvas at purdue.edu
Tue Dec 11 14:12:12 PST 2012
In the future please credit the original author (philipc in this case) in
the commit message as specified here <
http://llvm.org/docs/DeveloperPolicy.html#attribution-of-changes>.
-- Sean Silva
On Tue, Dec 11, 2012 at 10:20 AM, Alexander Kornienko <alexfh at google.com>wrote:
> Author: alexfh
> Date: Tue Dec 11 09:20:44 2012
> New Revision: 169865
>
> URL: http://llvm.org/viewvc/llvm-project?rev=169865&view=rev
> Log:
> Rename StmtDumper::DumpSubTree() to dumpStmt()
>
> Summary:
> Also rename DumpDeclarator() to dumpDecl(). Once Decl dumping is added,
> these will be the two main methods of the class, so this is just for
> consistency in naming.
>
> There was a DumpStmt() method already, but there was no point in having
> it, so I have merged it into VisitStmt(). Similarly, DumpExpr() is merged
> into VisitExpr().
>
> Reviewers: alexfh
>
> Reviewed By: alexfh
>
> CC: cfe-commits, alexfh
>
> Differential Revision: http://llvm-reviews.chandlerc.com/D156
>
> Modified:
> cfe/trunk/lib/AST/StmtDumper.cpp
>
> Modified: cfe/trunk/lib/AST/StmtDumper.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtDumper.cpp?rev=169865&r1=169864&r2=169865&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/StmtDumper.cpp (original)
> +++ cfe/trunk/lib/AST/StmtDumper.cpp Tue Dec 11 09:20:44 2012
> @@ -57,25 +57,8 @@
> OS << "\n";
> }
>
> - void DumpSubTree(Stmt *S) {
> - IndentScope Indent(*this);
> -
> - if (!S) {
> - OS << "<<<NULL>>>";
> - return;
> - }
> -
> - if (DeclStmt* DS = dyn_cast<DeclStmt>(S)) {
> - VisitDeclStmt(DS);
> - return;
> - }
> -
> - Visit(S);
> - for (Stmt::child_range CI = S->children(); CI; CI++)
> - DumpSubTree(*CI);
> - }
> -
> - void DumpDeclarator(Decl *D);
> + void dumpDecl(Decl *D);
> + void dumpStmt(Stmt *S);
>
> void indent() {
> if (IsFirstLine)
> @@ -104,11 +87,6 @@
> }
> }
> void DumpDeclRef(Decl *node);
> - void DumpStmt(const Stmt *Node) {
> - OS << Node->getStmtClassName()
> - << " " << (const void*)Node;
> - DumpSourceRange(Node);
> - }
> void DumpValueKind(ExprValueKind K) {
> switch (K) {
> case VK_RValue: break;
> @@ -125,13 +103,6 @@
> case OK_VectorComponent: OS << " vectorcomponent"; break;
> }
> }
> - void DumpExpr(const Expr *Node) {
> - DumpStmt(Node);
> - OS << ' ';
> - DumpType(Node->getType());
> - DumpValueKind(Node->getValueKind());
> - DumpObjectKind(Node->getObjectKind());
> - }
> void DumpSourceRange(const Stmt *Node);
> void DumpLocation(SourceLocation Loc);
>
> @@ -235,16 +206,11 @@
>
> }
>
> -
>
> //===----------------------------------------------------------------------===//
> -// Stmt printing methods.
> +// Decl printing methods.
>
> //===----------------------------------------------------------------------===//
>
> -void StmtDumper::VisitStmt(Stmt *Node) {
> - DumpStmt(Node);
> -}
> -
> -void StmtDumper::DumpDeclarator(Decl *D) {
> +void StmtDumper::dumpDecl(Decl *D) {
> // FIXME: Need to complete/beautify this... this code simply shows the
> // nodes are where they need to be.
> if (TypedefDecl *localType = dyn_cast<TypedefDecl>(D)) {
> @@ -271,7 +237,7 @@
> if (VarDecl *V = dyn_cast<VarDecl>(VD)) {
> if (V->getInit()) {
> OS << " =";
> - DumpSubTree(V->getInit());
> + dumpStmt(V->getInit());
> }
> }
> OS << '"';
> @@ -303,33 +269,60 @@
> OS << "label " << *LD;
> } else if (StaticAssertDecl *SAD = dyn_cast<StaticAssertDecl>(D)) {
> OS << "\"static_assert(";
> - DumpSubTree(SAD->getAssertExpr());
> + dumpStmt(SAD->getAssertExpr());
> OS << ",";
> - DumpSubTree(SAD->getMessage());
> + dumpStmt(SAD->getMessage());
> OS << ");\"";
> } else {
> llvm_unreachable("Unexpected decl");
> }
> }
>
>
> +//===----------------------------------------------------------------------===//
> +// Stmt printing methods.
>
> +//===----------------------------------------------------------------------===//
> +
> +void StmtDumper::dumpStmt(Stmt *S) {
> + IndentScope Indent(*this);
> +
> + if (!S) {
> + OS << "<<<NULL>>>";
> + return;
> + }
> +
> + if (DeclStmt *DS = dyn_cast<DeclStmt>(S)) {
> + VisitDeclStmt(DS);
> + return;
> + }
> +
> + Visit(S);
> + for (Stmt::child_range CI = S->children(); CI; ++CI)
> + dumpStmt(*CI);
> +}
> +
> +void StmtDumper::VisitStmt(Stmt *Node) {
> + OS << Node->getStmtClassName() << " " << (const void *)Node;
> + DumpSourceRange(Node);
> +}
> +
> void StmtDumper::VisitDeclStmt(DeclStmt *Node) {
> - DumpStmt(Node);
> + VisitStmt(Node);
> for (DeclStmt::decl_iterator DI = Node->decl_begin(), DE =
> Node->decl_end();
> DI != DE; ++DI) {
> IndentScope Indent(*this);
> Decl* D = *DI;
> OS << (void*) D << " ";
> - DumpDeclarator(D);
> + dumpDecl(D);
> }
> }
>
> void StmtDumper::VisitLabelStmt(LabelStmt *Node) {
> - DumpStmt(Node);
> + VisitStmt(Node);
> OS << " '" << Node->getName() << "'";
> }
>
> void StmtDumper::VisitGotoStmt(GotoStmt *Node) {
> - DumpStmt(Node);
> + VisitStmt(Node);
> OS << " '" << Node->getLabel()->getName()
> << "':" << (void*)Node->getLabel();
> }
> @@ -339,7 +332,11 @@
>
> //===----------------------------------------------------------------------===//
>
> void StmtDumper::VisitExpr(Expr *Node) {
> - DumpExpr(Node);
> + VisitStmt(Node);
> + OS << ' ';
> + DumpType(Node->getType());
> + DumpValueKind(Node->getValueKind());
> + DumpObjectKind(Node->getObjectKind());
> }
>
> static void DumpBasePath(raw_ostream &OS, CastExpr *Node) {
> @@ -367,14 +364,14 @@
> }
>
> void StmtDumper::VisitCastExpr(CastExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " <" << Node->getCastKindName();
> DumpBasePath(OS, Node);
> OS << ">";
> }
>
> void StmtDumper::VisitDeclRefExpr(DeclRefExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> OS << " ";
> DumpDeclRef(Node->getDecl());
> @@ -400,7 +397,7 @@
> }
>
> void StmtDumper::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " (";
> if (!Node->requiresADL()) OS << "no ";
> OS << "ADL) = '" << Node->getName() << '\'';
> @@ -413,7 +410,7 @@
> }
>
> void StmtDumper::VisitObjCIvarRefExpr(ObjCIvarRefExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> OS << " " << Node->getDecl()->getDeclKindName()
> << "Decl='" << *Node->getDecl()
> @@ -423,7 +420,7 @@
> }
>
> void StmtDumper::VisitPredefinedExpr(PredefinedExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> switch (Node->getIdentType()) {
> default: llvm_unreachable("unknown case");
> case PredefinedExpr::Func: OS << " __func__"; break;
> @@ -434,34 +431,34 @@
> }
>
> void StmtDumper::VisitCharacterLiteral(CharacterLiteral *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << Node->getValue();
> }
>
> void StmtDumper::VisitIntegerLiteral(IntegerLiteral *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> bool isSigned = Node->getType()->isSignedIntegerType();
> OS << " " << Node->getValue().toString(10, isSigned);
> }
> void StmtDumper::VisitFloatingLiteral(FloatingLiteral *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << Node->getValueAsApproximateDouble();
> }
>
> void StmtDumper::VisitStringLiteral(StringLiteral *Str) {
> - DumpExpr(Str);
> + VisitExpr(Str);
> OS << " ";
> Str->outputString(OS);
> }
>
> void StmtDumper::VisitUnaryOperator(UnaryOperator *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << (Node->isPostfix() ? "postfix" : "prefix")
> << " '" << UnaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
> }
> void StmtDumper::VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr
> *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> switch(Node->getKind()) {
> case UETT_SizeOf:
> OS << " sizeof ";
> @@ -478,21 +475,21 @@
> }
>
> void StmtDumper::VisitMemberExpr(MemberExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << (Node->isArrow() ? "->" : ".")
> << *Node->getMemberDecl() << ' '
> << (void*)Node->getMemberDecl();
> }
> void StmtDumper::VisitExtVectorElementExpr(ExtVectorElementExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << Node->getAccessor().getNameStart();
> }
> void StmtDumper::VisitBinaryOperator(BinaryOperator *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
> }
> void StmtDumper::VisitCompoundAssignOperator(CompoundAssignOperator
> *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode())
> << "' ComputeLHSTy=";
> DumpType(Node->getComputationLHSType());
> @@ -501,7 +498,7 @@
> }
>
> void StmtDumper::VisitBlockExpr(BlockExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> BlockDecl *block = Node->getBlockDecl();
> OS << " decl=" << block;
> @@ -518,23 +515,24 @@
> if (i->isNested()) OS << "nested ";
> if (i->getVariable())
> DumpDeclRef(i->getVariable());
> - if (i->hasCopyExpr()) DumpSubTree(i->getCopyExpr());
> + if (i->hasCopyExpr())
> + dumpStmt(i->getCopyExpr());
> }
>
> - DumpSubTree(block->getBody());
> + dumpStmt(block->getBody());
> }
>
> void StmtDumper::VisitOpaqueValueExpr(OpaqueValueExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> if (Expr *Source = Node->getSourceExpr())
> - DumpSubTree(Source);
> + dumpStmt(Source);
> }
>
> // GNU extensions.
>
> void StmtDumper::VisitAddrLabelExpr(AddrLabelExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << Node->getLabel()->getName()
> << " " << (void*)Node->getLabel();
> }
> @@ -544,7 +542,7 @@
>
> //===----------------------------------------------------------------------===//
>
> void StmtDumper::VisitCXXNamedCastExpr(CXXNamedCastExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << Node->getCastName()
> << "<" << Node->getTypeAsWritten().getAsString() << ">"
> << " <" << Node->getCastKindName();
> @@ -553,23 +551,23 @@
> }
>
> void StmtDumper::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << (Node->getValue() ? "true" : "false");
> }
>
> void StmtDumper::VisitCXXThisExpr(CXXThisExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " this";
> }
>
> void StmtDumper::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " functional cast to " << Node->getTypeAsWritten().getAsString()
> << " <" << Node->getCastKindName() << ">";
> }
>
> void StmtDumper::VisitCXXConstructExpr(CXXConstructExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> CXXConstructorDecl *Ctor = Node->getConstructor();
> DumpType(Ctor->getType());
> if (Node->isElidable())
> @@ -579,13 +577,13 @@
> }
>
> void StmtDumper::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " ";
> DumpCXXTemporary(Node->getTemporary());
> }
>
> void StmtDumper::VisitExprWithCleanups(ExprWithCleanups *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> for (unsigned i = 0, e = Node->getNumObjects(); i != e; ++i) {
> IndentScope Indent(*this);
> OS << "cleanup ";
> @@ -602,7 +600,7 @@
>
> //===----------------------------------------------------------------------===//
>
> void StmtDumper::VisitObjCMessageExpr(ObjCMessageExpr* Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " selector=" << Node->getSelector().getAsString();
> switch (Node->getReceiverKind()) {
> case ObjCMessageExpr::Instance:
> @@ -624,40 +622,40 @@
> }
>
> void StmtDumper::VisitObjCBoxedExpr(ObjCBoxedExpr* Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " selector=" <<
> Node->getBoxingMethod()->getSelector().getAsString();
> }
>
> void StmtDumper::VisitObjCAtCatchStmt(ObjCAtCatchStmt *Node) {
> - DumpStmt(Node);
> + VisitStmt(Node);
> if (VarDecl *CatchParam = Node->getCatchParamDecl()) {
> OS << " catch parm = ";
> - DumpDeclarator(CatchParam);
> + dumpDecl(CatchParam);
> } else {
> OS << " catch all";
> }
> }
>
> void StmtDumper::VisitObjCEncodeExpr(ObjCEncodeExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " ";
> DumpType(Node->getEncodedType());
> }
>
> void StmtDumper::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> OS << " " << Node->getSelector().getAsString();
> }
>
> void StmtDumper::VisitObjCProtocolExpr(ObjCProtocolExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
>
> OS << ' ' <<* Node->getProtocol();
> }
>
> void StmtDumper::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> if (Node->isImplicitProperty()) {
> OS << " Kind=MethodRef Getter=\"";
> if (Node->getImplicitPropertyGetter())
> @@ -688,7 +686,7 @@
> }
>
> void StmtDumper::VisitObjCSubscriptRefExpr(ObjCSubscriptRefExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> if (Node->isArraySubscriptRefExpr())
> OS << " Kind=ArraySubscript GetterForArray=\"";
> else
> @@ -709,7 +707,7 @@
> }
>
> void StmtDumper::VisitObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Node) {
> - DumpExpr(Node);
> + VisitExpr(Node);
> OS << " " << (Node->getValue() ? "__objc_yes" : "__objc_no");
> }
>
> @@ -723,10 +721,10 @@
>
> void Stmt::dump(raw_ostream &OS, SourceManager &SM) const {
> StmtDumper P(&SM, OS);
> - P.DumpSubTree(const_cast<Stmt*>(this));
> + P.dumpStmt(const_cast<Stmt*>(this));
> }
>
> void Stmt::dump() const {
> StmtDumper P(0, llvm::errs());
> - P.DumpSubTree(const_cast<Stmt*>(this));
> + P.dumpStmt(const_cast<Stmt*>(this));
> }
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121211/80ddc1d3/attachment.html>
More information about the cfe-commits
mailing list