[PATCH] D141570: [clang] Add no-argument dump to DynTypedNode
Chris Cotter via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 11 23:44:14 PST 2023
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) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D141570.488493.patch
Type: text/x-patch
Size: 1860 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230112/ea855112/attachment.bin>
More information about the cfe-commits
mailing list