Author: Aaron Ballman Date: 2025-11-06T09:26:04-05:00 New Revision: 831a8b55cafe6c139beb0f6d88ab32a71bdfd1ca
URL: https://github.com/llvm/llvm-project/commit/831a8b55cafe6c139beb0f6d88ab32a71bdfd1ca DIFF: https://github.com/llvm/llvm-project/commit/831a8b55cafe6c139beb0f6d88ab32a71bdfd1ca.diff LOG: Add dump info for VarDecl A VarDecl can either be a declaration, a definition, or a tentative definition. This dumps that information because it turned out to be useful for a discussion trying to understand a difference in behavior between C and C++. Added: Modified: clang/lib/AST/TextNodeDumper.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp index 41aebdb8d2f1b..549d7208a7a06 100644 --- a/clang/lib/AST/TextNodeDumper.cpp +++ b/clang/lib/AST/TextNodeDumper.cpp @@ -2461,6 +2461,7 @@ void TextNodeDumper::VisitVarDecl(const VarDecl *D) { break; case VarDecl::ParenListInit: OS << " parenlistinit"; + break; } } if (D->needsDestruction(D->getASTContext())) @@ -2468,6 +2469,19 @@ void TextNodeDumper::VisitVarDecl(const VarDecl *D) { if (D->isParameterPack()) OS << " pack"; + VarDecl::DefinitionKind K = D->isThisDeclarationADefinition(); + switch (K) { + case VarDecl::DefinitionKind::DeclarationOnly: + OS << " declaration"; + break; + case VarDecl::DefinitionKind::Definition: + OS << " definition"; + break; + case VarDecl::DefinitionKind::TentativeDefinition: + OS << " tentative definition"; + break; + } + if (const auto *Instance = D->getTemplateInstantiationPattern()) { OS << " instantiated_from"; dumpPointer(Instance); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
