In the future please credit the original author (philipc in this case) in the commit message as specified here <<a href="http://llvm.org/docs/DeveloperPolicy.html#attribution-of-changes">http://llvm.org/docs/DeveloperPolicy.html#attribution-of-changes</a>>.<div>
<br></div><div>-- Sean Silva</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Dec 11, 2012 at 10:20 AM, Alexander Kornienko <span dir="ltr"><<a href="mailto:alexfh@google.com" target="_blank">alexfh@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: alexfh<br>
Date: Tue Dec 11 09:20:44 2012<br>
New Revision: 169865<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=169865&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=169865&view=rev</a><br>
Log:<br>
Rename StmtDumper::DumpSubTree() to dumpStmt()<br>
<br>
Summary:<br>
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.<br>
<br>
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().<br>
<br>
Reviewers: alexfh<br>
<br>
Reviewed By: alexfh<br>
<br>
CC: cfe-commits, alexfh<br>
<br>
Differential Revision: <a href="http://llvm-reviews.chandlerc.com/D156" target="_blank">http://llvm-reviews.chandlerc.com/D156</a><br>
<br>
Modified:<br>
    cfe/trunk/lib/AST/StmtDumper.cpp<br>
<br>
Modified: cfe/trunk/lib/AST/StmtDumper.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtDumper.cpp?rev=169865&r1=169864&r2=169865&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtDumper.cpp?rev=169865&r1=169864&r2=169865&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/lib/AST/StmtDumper.cpp (original)<br>
+++ cfe/trunk/lib/AST/StmtDumper.cpp Tue Dec 11 09:20:44 2012<br>
@@ -57,25 +57,8 @@<br>
       OS << "\n";<br>
     }<br>
<br>
-    void DumpSubTree(Stmt *S) {<br>
-      IndentScope Indent(*this);<br>
-<br>
-      if (!S) {<br>
-        OS << "<<<NULL>>>";<br>
-        return;<br>
-      }<br>
-<br>
-      if (DeclStmt* DS = dyn_cast<DeclStmt>(S)) {<br>
-        VisitDeclStmt(DS);<br>
-        return;<br>
-      }<br>
-<br>
-      Visit(S);<br>
-      for (Stmt::child_range CI = S->children(); CI; CI++)<br>
-        DumpSubTree(*CI);<br>
-    }<br>
-<br>
-    void DumpDeclarator(Decl *D);<br>
+    void dumpDecl(Decl *D);<br>
+    void dumpStmt(Stmt *S);<br>
<br>
     void indent() {<br>
       if (IsFirstLine)<br>
@@ -104,11 +87,6 @@<br>
       }<br>
     }<br>
     void DumpDeclRef(Decl *node);<br>
-    void DumpStmt(const Stmt *Node) {<br>
-      OS << Node->getStmtClassName()<br>
-         << " " << (const void*)Node;<br>
-      DumpSourceRange(Node);<br>
-    }<br>
     void DumpValueKind(ExprValueKind K) {<br>
       switch (K) {<br>
       case VK_RValue: break;<br>
@@ -125,13 +103,6 @@<br>
       case OK_VectorComponent: OS << " vectorcomponent"; break;<br>
       }<br>
     }<br>
-    void DumpExpr(const Expr *Node) {<br>
-      DumpStmt(Node);<br>
-      OS << ' ';<br>
-      DumpType(Node->getType());<br>
-      DumpValueKind(Node->getValueKind());<br>
-      DumpObjectKind(Node->getObjectKind());<br>
-    }<br>
     void DumpSourceRange(const Stmt *Node);<br>
     void DumpLocation(SourceLocation Loc);<br>
<br>
@@ -235,16 +206,11 @@<br>
<br>
 }<br>
<br>
-<br>
 //===----------------------------------------------------------------------===//<br>
-//  Stmt printing methods.<br>
+//  Decl printing methods.<br>
 //===----------------------------------------------------------------------===//<br>
<br>
-void StmtDumper::VisitStmt(Stmt *Node) {<br>
-  DumpStmt(Node);<br>
-}<br>
-<br>
-void StmtDumper::DumpDeclarator(Decl *D) {<br>
+void StmtDumper::dumpDecl(Decl *D) {<br>
   // FIXME: Need to complete/beautify this... this code simply shows the<br>
   // nodes are where they need to be.<br>
   if (TypedefDecl *localType = dyn_cast<TypedefDecl>(D)) {<br>
@@ -271,7 +237,7 @@<br>
     if (VarDecl *V = dyn_cast<VarDecl>(VD)) {<br>
       if (V->getInit()) {<br>
         OS << " =";<br>
-        DumpSubTree(V->getInit());<br>
+        dumpStmt(V->getInit());<br>
       }<br>
     }<br>
     OS << '"';<br>
@@ -303,33 +269,60 @@<br>
     OS << "label " << *LD;<br>
   } else if (StaticAssertDecl *SAD = dyn_cast<StaticAssertDecl>(D)) {<br>
     OS << "\"static_assert(";<br>
-    DumpSubTree(SAD->getAssertExpr());<br>
+    dumpStmt(SAD->getAssertExpr());<br>
     OS << ",";<br>
-    DumpSubTree(SAD->getMessage());<br>
+    dumpStmt(SAD->getMessage());<br>
     OS << ");\"";<br>
   } else {<br>
     llvm_unreachable("Unexpected decl");<br>
   }<br>
 }<br>
<br>
+//===----------------------------------------------------------------------===//<br>
+//  Stmt printing methods.<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+void StmtDumper::dumpStmt(Stmt *S) {<br>
+  IndentScope Indent(*this);<br>
+<br>
+  if (!S) {<br>
+    OS << "<<<NULL>>>";<br>
+    return;<br>
+  }<br>
+<br>
+  if (DeclStmt *DS = dyn_cast<DeclStmt>(S)) {<br>
+    VisitDeclStmt(DS);<br>
+    return;<br>
+  }<br>
+<br>
+  Visit(S);<br>
+  for (Stmt::child_range CI = S->children(); CI; ++CI)<br>
+    dumpStmt(*CI);<br>
+}<br>
+<br>
+void StmtDumper::VisitStmt(Stmt *Node) {<br>
+  OS << Node->getStmtClassName() << " " << (const void *)Node;<br>
+  DumpSourceRange(Node);<br>
+}<br>
+<br>
 void StmtDumper::VisitDeclStmt(DeclStmt *Node) {<br>
-  DumpStmt(Node);<br>
+  VisitStmt(Node);<br>
   for (DeclStmt::decl_iterator DI = Node->decl_begin(), DE = Node->decl_end();<br>
        DI != DE; ++DI) {<br>
     IndentScope Indent(*this);<br>
     Decl* D = *DI;<br>
     OS << (void*) D << " ";<br>
-    DumpDeclarator(D);<br>
+    dumpDecl(D);<br>
   }<br>
 }<br>
<br>
 void StmtDumper::VisitLabelStmt(LabelStmt *Node) {<br>
-  DumpStmt(Node);<br>
+  VisitStmt(Node);<br>
   OS << " '" << Node->getName() << "'";<br>
 }<br>
<br>
 void StmtDumper::VisitGotoStmt(GotoStmt *Node) {<br>
-  DumpStmt(Node);<br>
+  VisitStmt(Node);<br>
   OS << " '" << Node->getLabel()->getName()<br>
      << "':" << (void*)Node->getLabel();<br>
 }<br>
@@ -339,7 +332,11 @@<br>
 //===----------------------------------------------------------------------===//<br>
<br>
 void StmtDumper::VisitExpr(Expr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitStmt(Node);<br>
+  OS << ' ';<br>
+  DumpType(Node->getType());<br>
+  DumpValueKind(Node->getValueKind());<br>
+  DumpObjectKind(Node->getObjectKind());<br>
 }<br>
<br>
 static void DumpBasePath(raw_ostream &OS, CastExpr *Node) {<br>
@@ -367,14 +364,14 @@<br>
 }<br>
<br>
 void StmtDumper::VisitCastExpr(CastExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " <" << Node->getCastKindName();<br>
   DumpBasePath(OS, Node);<br>
   OS << ">";<br>
 }<br>
<br>
 void StmtDumper::VisitDeclRefExpr(DeclRefExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   OS << " ";<br>
   DumpDeclRef(Node->getDecl());<br>
@@ -400,7 +397,7 @@<br>
 }<br>
<br>
 void StmtDumper::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " (";<br>
   if (!Node->requiresADL()) OS << "no ";<br>
   OS << "ADL) = '" << Node->getName() << '\'';<br>
@@ -413,7 +410,7 @@<br>
 }<br>
<br>
 void StmtDumper::VisitObjCIvarRefExpr(ObjCIvarRefExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   OS << " " << Node->getDecl()->getDeclKindName()<br>
      << "Decl='" << *Node->getDecl()<br>
@@ -423,7 +420,7 @@<br>
 }<br>
<br>
 void StmtDumper::VisitPredefinedExpr(PredefinedExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   switch (Node->getIdentType()) {<br>
   default: llvm_unreachable("unknown case");<br>
   case PredefinedExpr::Func:           OS <<  " __func__"; break;<br>
@@ -434,34 +431,34 @@<br>
 }<br>
<br>
 void StmtDumper::VisitCharacterLiteral(CharacterLiteral *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << Node->getValue();<br>
 }<br>
<br>
 void StmtDumper::VisitIntegerLiteral(IntegerLiteral *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   bool isSigned = Node->getType()->isSignedIntegerType();<br>
   OS << " " << Node->getValue().toString(10, isSigned);<br>
 }<br>
 void StmtDumper::VisitFloatingLiteral(FloatingLiteral *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << Node->getValueAsApproximateDouble();<br>
 }<br>
<br>
 void StmtDumper::VisitStringLiteral(StringLiteral *Str) {<br>
-  DumpExpr(Str);<br>
+  VisitExpr(Str);<br>
   OS << " ";<br>
   Str->outputString(OS);<br>
 }<br>
<br>
 void StmtDumper::VisitUnaryOperator(UnaryOperator *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << (Node->isPostfix() ? "postfix" : "prefix")<br>
      << " '" << UnaryOperator::getOpcodeStr(Node->getOpcode()) << "'";<br>
 }<br>
 void StmtDumper::VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   switch(Node->getKind()) {<br>
   case UETT_SizeOf:<br>
     OS << " sizeof ";<br>
@@ -478,21 +475,21 @@<br>
 }<br>
<br>
 void StmtDumper::VisitMemberExpr(MemberExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << (Node->isArrow() ? "->" : ".")<br>
      << *Node->getMemberDecl() << ' '<br>
      << (void*)Node->getMemberDecl();<br>
 }<br>
 void StmtDumper::VisitExtVectorElementExpr(ExtVectorElementExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << Node->getAccessor().getNameStart();<br>
 }<br>
 void StmtDumper::VisitBinaryOperator(BinaryOperator *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode()) << "'";<br>
 }<br>
 void StmtDumper::VisitCompoundAssignOperator(CompoundAssignOperator *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode())<br>
      << "' ComputeLHSTy=";<br>
   DumpType(Node->getComputationLHSType());<br>
@@ -501,7 +498,7 @@<br>
 }<br>
<br>
 void StmtDumper::VisitBlockExpr(BlockExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   BlockDecl *block = Node->getBlockDecl();<br>
   OS << " decl=" << block;<br>
@@ -518,23 +515,24 @@<br>
     if (i->isNested()) OS << "nested ";<br>
     if (i->getVariable())<br>
       DumpDeclRef(i->getVariable());<br>
-    if (i->hasCopyExpr()) DumpSubTree(i->getCopyExpr());<br>
+    if (i->hasCopyExpr())<br>
+      dumpStmt(i->getCopyExpr());<br>
   }<br>
<br>
-  DumpSubTree(block->getBody());<br>
+  dumpStmt(block->getBody());<br>
 }<br>
<br>
 void StmtDumper::VisitOpaqueValueExpr(OpaqueValueExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   if (Expr *Source = Node->getSourceExpr())<br>
-    DumpSubTree(Source);<br>
+    dumpStmt(Source);<br>
 }<br>
<br>
 // GNU extensions.<br>
<br>
 void StmtDumper::VisitAddrLabelExpr(AddrLabelExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << Node->getLabel()->getName()<br>
      << " " << (void*)Node->getLabel();<br>
 }<br>
@@ -544,7 +542,7 @@<br>
 //===----------------------------------------------------------------------===//<br>
<br>
 void StmtDumper::VisitCXXNamedCastExpr(CXXNamedCastExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << Node->getCastName()<br>
      << "<" << Node->getTypeAsWritten().getAsString() << ">"<br>
      << " <" << Node->getCastKindName();<br>
@@ -553,23 +551,23 @@<br>
 }<br>
<br>
 void StmtDumper::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << (Node->getValue() ? "true" : "false");<br>
 }<br>
<br>
 void StmtDumper::VisitCXXThisExpr(CXXThisExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " this";<br>
 }<br>
<br>
 void StmtDumper::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " functional cast to " << Node->getTypeAsWritten().getAsString()<br>
      << " <" << Node->getCastKindName() << ">";<br>
 }<br>
<br>
 void StmtDumper::VisitCXXConstructExpr(CXXConstructExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   CXXConstructorDecl *Ctor = Node->getConstructor();<br>
   DumpType(Ctor->getType());<br>
   if (Node->isElidable())<br>
@@ -579,13 +577,13 @@<br>
 }<br>
<br>
 void StmtDumper::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " ";<br>
   DumpCXXTemporary(Node->getTemporary());<br>
 }<br>
<br>
 void StmtDumper::VisitExprWithCleanups(ExprWithCleanups *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   for (unsigned i = 0, e = Node->getNumObjects(); i != e; ++i) {<br>
     IndentScope Indent(*this);<br>
     OS << "cleanup ";<br>
@@ -602,7 +600,7 @@<br>
 //===----------------------------------------------------------------------===//<br>
<br>
 void StmtDumper::VisitObjCMessageExpr(ObjCMessageExpr* Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " selector=" << Node->getSelector().getAsString();<br>
   switch (Node->getReceiverKind()) {<br>
   case ObjCMessageExpr::Instance:<br>
@@ -624,40 +622,40 @@<br>
 }<br>
<br>
 void StmtDumper::VisitObjCBoxedExpr(ObjCBoxedExpr* Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " selector=" << Node->getBoxingMethod()->getSelector().getAsString();<br>
 }<br>
<br>
 void StmtDumper::VisitObjCAtCatchStmt(ObjCAtCatchStmt *Node) {<br>
-  DumpStmt(Node);<br>
+  VisitStmt(Node);<br>
   if (VarDecl *CatchParam = Node->getCatchParamDecl()) {<br>
     OS << " catch parm = ";<br>
-    DumpDeclarator(CatchParam);<br>
+    dumpDecl(CatchParam);<br>
   } else {<br>
     OS << " catch all";<br>
   }<br>
 }<br>
<br>
 void StmtDumper::VisitObjCEncodeExpr(ObjCEncodeExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " ";<br>
   DumpType(Node->getEncodedType());<br>
 }<br>
<br>
 void StmtDumper::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   OS << " " << Node->getSelector().getAsString();<br>
 }<br>
<br>
 void StmtDumper::VisitObjCProtocolExpr(ObjCProtocolExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
<br>
   OS << ' ' <<* Node->getProtocol();<br>
 }<br>
<br>
 void StmtDumper::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   if (Node->isImplicitProperty()) {<br>
     OS << " Kind=MethodRef Getter=\"";<br>
     if (Node->getImplicitPropertyGetter())<br>
@@ -688,7 +686,7 @@<br>
 }<br>
<br>
 void StmtDumper::VisitObjCSubscriptRefExpr(ObjCSubscriptRefExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   if (Node->isArraySubscriptRefExpr())<br>
     OS << " Kind=ArraySubscript GetterForArray=\"";<br>
   else<br>
@@ -709,7 +707,7 @@<br>
 }<br>
<br>
 void StmtDumper::VisitObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Node) {<br>
-  DumpExpr(Node);<br>
+  VisitExpr(Node);<br>
   OS << " " << (Node->getValue() ? "__objc_yes" : "__objc_no");<br>
 }<br>
<br>
@@ -723,10 +721,10 @@<br>
<br>
 void Stmt::dump(raw_ostream &OS, SourceManager &SM) const {<br>
   StmtDumper P(&SM, OS);<br>
-  P.DumpSubTree(const_cast<Stmt*>(this));<br>
+  P.dumpStmt(const_cast<Stmt*>(this));<br>
 }<br>
<br>
 void Stmt::dump() const {<br>
   StmtDumper P(0, llvm::errs());<br>
-  P.DumpSubTree(const_cast<Stmt*>(this));<br>
+  P.dumpStmt(const_cast<Stmt*>(this));<br>
 }<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>