diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp')
-rw-r--r-- | contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp b/contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp index 5b0a0ac392c0..e3132752546f 100644 --- a/contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp +++ b/contrib/llvm-project/clang/lib/AST/TextNodeDumper.cpp @@ -661,7 +661,7 @@ void TextNodeDumper::dumpBareDeclRef(const Decl *D) { void TextNodeDumper::dumpName(const NamedDecl *ND) { if (ND->getDeclName()) { ColorScope Color(OS, ShowColors, DeclNameColor); - OS << ' ' << ND->getNameAsString(); + OS << ' ' << ND->getDeclName(); } } @@ -710,6 +710,13 @@ const char *TextNodeDumper::getCommandName(unsigned CommandID) { return "<not a builtin command>"; } +void TextNodeDumper::printFPOptions(FPOptionsOverride FPO) { +#define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \ + if (FPO.has##NAME##Override()) \ + OS << " " #NAME "=" << FPO.get##NAME##Override(); +#include "clang/Basic/FPOptions.def" +} + void TextNodeDumper::visitTextComment(const comments::TextComment *C, const comments::FullComment *) { OS << " Text=\"" << C->getText() << "\""; @@ -937,6 +944,8 @@ void TextNodeDumper::VisitConstantExpr(const ConstantExpr *Node) { void TextNodeDumper::VisitCallExpr(const CallExpr *Node) { if (Node->usesADL()) OS << " adl"; + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getFPFeatures()); } void TextNodeDumper::VisitCXXOperatorCallExpr(const CXXOperatorCallExpr *Node) { @@ -955,6 +964,8 @@ void TextNodeDumper::VisitCastExpr(const CastExpr *Node) { } dumpBasePath(OS, Node); OS << ">"; + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getFPFeatures()); } void TextNodeDumper::VisitImplicitCastExpr(const ImplicitCastExpr *Node) { @@ -1053,6 +1064,8 @@ void TextNodeDumper::VisitUnaryOperator(const UnaryOperator *Node) { << UnaryOperator::getOpcodeStr(Node->getOpcode()) << "'"; if (!Node->canOverflow()) OS << " cannot overflow"; + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getStoredFPFeatures()); } void TextNodeDumper::VisitUnaryExprOrTypeTraitExpr( @@ -1081,6 +1094,8 @@ void TextNodeDumper::VisitExtVectorElementExpr( void TextNodeDumper::VisitBinaryOperator(const BinaryOperator *Node) { OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode()) << "'"; + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getStoredFPFeatures()); } void TextNodeDumper::VisitCompoundAssignOperator( @@ -1090,6 +1105,8 @@ void TextNodeDumper::VisitCompoundAssignOperator( dumpBareType(Node->getComputationLHSType()); OS << " ComputeResultTy="; dumpBareType(Node->getComputationResultType()); + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getStoredFPFeatures()); } void TextNodeDumper::VisitAddrLabelExpr(const AddrLabelExpr *Node) { @@ -1119,6 +1136,14 @@ void TextNodeDumper::VisitCXXFunctionalCastExpr( const CXXFunctionalCastExpr *Node) { OS << " functional cast to " << Node->getTypeAsWritten().getAsString() << " <" << Node->getCastKindName() << ">"; + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getFPFeatures()); +} + +void TextNodeDumper::VisitCXXStaticCastExpr(const CXXStaticCastExpr *Node) { + VisitCXXNamedCastExpr(Node); + if (Node->hasStoredFPFeatures()) + printFPOptions(Node->getFPFeatures()); } void TextNodeDumper::VisitCXXUnresolvedConstructExpr( @@ -1327,6 +1352,12 @@ void TextNodeDumper::VisitOMPIteratorExpr(const OMPIteratorExpr *Node) { } } +void TextNodeDumper::VisitConceptSpecializationExpr( + const ConceptSpecializationExpr *Node) { + OS << " "; + dumpBareDeclRef(Node->getFoundDecl()); +} + void TextNodeDumper::VisitRValueReferenceType(const ReferenceType *T) { if (T->isSpelledAsLValue()) OS << " written as lvalue reference"; @@ -1389,6 +1420,12 @@ void TextNodeDumper::VisitVectorType(const VectorType *T) { case VectorType::NeonPolyVector: OS << " neon poly"; break; + case VectorType::SveFixedLengthDataVector: + OS << " fixed-length sve data vector"; + break; + case VectorType::SveFixedLengthPredicateVector: + OS << " fixed-length sve predicate vector"; + break; } OS << " " << T->getNumElements(); } @@ -1581,9 +1618,8 @@ void TextNodeDumper::VisitFunctionDecl(const FunctionDecl *D) { if (MD->size_overridden_methods() != 0) { auto dumpOverride = [=](const CXXMethodDecl *D) { SplitQualType T_split = D->getType().split(); - OS << D << " " << D->getParent()->getName() - << "::" << D->getNameAsString() << " '" - << QualType::getAsString(T_split, PrintPolicy) << "'"; + OS << D << " " << D->getParent()->getName() << "::" << D->getDeclName() + << " '" << QualType::getAsString(T_split, PrintPolicy) << "'"; }; AddChild([=] { @@ -1981,7 +2017,6 @@ void TextNodeDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { dumpBareDeclRef(TC->getFoundDecl()); OS << ")"; } - Visit(TC->getImmediatelyDeclaredConstraint()); } else if (D->wasDeclaredWithTypename()) OS << " typename"; else @@ -2013,7 +2048,7 @@ void TextNodeDumper::VisitUsingDecl(const UsingDecl *D) { OS << ' '; if (D->getQualifier()) D->getQualifier()->print(OS, D->getASTContext().getPrintingPolicy()); - OS << D->getNameAsString(); + OS << D->getDeclName(); } void TextNodeDumper::VisitUnresolvedUsingTypenameDecl( @@ -2021,7 +2056,7 @@ void TextNodeDumper::VisitUnresolvedUsingTypenameDecl( OS << ' '; if (D->getQualifier()) D->getQualifier()->print(OS, D->getASTContext().getPrintingPolicy()); - OS << D->getNameAsString(); + OS << D->getDeclName(); } void TextNodeDumper::VisitUnresolvedUsingValueDecl( @@ -2029,7 +2064,7 @@ void TextNodeDumper::VisitUnresolvedUsingValueDecl( OS << ' '; if (D->getQualifier()) D->getQualifier()->print(OS, D->getASTContext().getPrintingPolicy()); - OS << D->getNameAsString(); + OS << D->getDeclName(); dumpType(D->getType()); } |