ccotter created this revision.
Herald added a subscriber: carlosgalvezp.
Herald added a reviewer: njames93.
Herald added a project: All.
ccotter requested review of this revision.
Herald added projects: clang, clang-tools-extra.
Herald added a subscriber: cfe-commits.

Provide a no-argument dump methods to avoid having to do
additional gymnastics to dump a DynTypedNode.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D141570

Files:
  clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
  clang/include/clang/AST/ASTTypeTraits.h
  clang/lib/AST/ASTTypeTraits.cpp


Index: clang/lib/AST/ASTTypeTraits.cpp
===================================================================
--- clang/lib/AST/ASTTypeTraits.cpp
+++ clang/lib/AST/ASTTypeTraits.cpp
@@ -213,6 +213,17 @@
     OS << "Unable to dump values of type " << NodeKind.asStringRef() << "\n";
 }
 
+void DynTypedNode::dump() const {
+  if (const Decl *D = get<Decl>())
+    D->dump();
+  else if (const Stmt *S = get<Stmt>())
+    S->dump();
+  else if (const Type *T = get<Type>())
+    T->dump();
+  else
+    llvm::errs() << "Unable to dump values of type " << NodeKind.asStringRef() 
<< "\n";
+}
+
 SourceRange DynTypedNode::getSourceRange() const {
   if (const CXXCtorInitializer *CCI = get<CXXCtorInitializer>())
     return CCI->getSourceRange();
Index: clang/include/clang/AST/ASTTypeTraits.h
===================================================================
--- clang/include/clang/AST/ASTTypeTraits.h
+++ clang/include/clang/AST/ASTTypeTraits.h
@@ -296,6 +296,9 @@
   /// Dumps the node to the given output stream.
   void dump(llvm::raw_ostream &OS, const ASTContext &Context) const;
 
+  /// Dumps the node to \c llvm::errs().
+  void dump() const;
+
   /// For nodes which represent textual entities in the source code,
   /// return their SourceRange.  For all other nodes, return SourceRange().
   SourceRange getSourceRange() const;
Index: clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
+++ clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
@@ -430,6 +430,9 @@
     // be fine since for the statements we care about there should only be one
     // parent, except for the case specified below.
 
+    llvm::errs() << "DUMP\n";
+    Start.dump();
+
     assert(MacroLoc.isFileID());
 
     while (true) {


Index: clang/lib/AST/ASTTypeTraits.cpp
===================================================================
--- clang/lib/AST/ASTTypeTraits.cpp
+++ clang/lib/AST/ASTTypeTraits.cpp
@@ -213,6 +213,17 @@
     OS << "Unable to dump values of type " << NodeKind.asStringRef() << "\n";
 }
 
+void DynTypedNode::dump() const {
+  if (const Decl *D = get<Decl>())
+    D->dump();
+  else if (const Stmt *S = get<Stmt>())
+    S->dump();
+  else if (const Type *T = get<Type>())
+    T->dump();
+  else
+    llvm::errs() << "Unable to dump values of type " << NodeKind.asStringRef() << "\n";
+}
+
 SourceRange DynTypedNode::getSourceRange() const {
   if (const CXXCtorInitializer *CCI = get<CXXCtorInitializer>())
     return CCI->getSourceRange();
Index: clang/include/clang/AST/ASTTypeTraits.h
===================================================================
--- clang/include/clang/AST/ASTTypeTraits.h
+++ clang/include/clang/AST/ASTTypeTraits.h
@@ -296,6 +296,9 @@
   /// Dumps the node to the given output stream.
   void dump(llvm::raw_ostream &OS, const ASTContext &Context) const;
 
+  /// Dumps the node to \c llvm::errs().
+  void dump() const;
+
   /// For nodes which represent textual entities in the source code,
   /// return their SourceRange.  For all other nodes, return SourceRange().
   SourceRange getSourceRange() const;
Index: clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
+++ clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
@@ -430,6 +430,9 @@
     // be fine since for the statements we care about there should only be one
     // parent, except for the case specified below.
 
+    llvm::errs() << "DUMP\n";
+    Start.dump();
+
     assert(MacroLoc.isFileID());
 
     while (true) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to