diff options
author | Daniel Grumberg <dgrumberg@apple.com> | 2022-12-14 12:12:26 +0000 |
---|---|---|
committer | Daniel Grumberg <dgrumberg@apple.com> | 2022-12-16 11:01:03 +0000 |
commit | 8dcb629aa4ccfdd18fb700cabb45fd74fcd291c8 (patch) | |
tree | d77f5ab8fd75b43c44d81cbe0f20bdbb2cb6dd29 /clang/lib/ExtractAPI/ExtractAPIVisitor.cpp | |
parent | 7e61c68174ccf2f00bff9807310d313c287179ee (diff) | |
download | llvm-8dcb629aa4ccfdd18fb700cabb45fd74fcd291c8.zip llvm-8dcb629aa4ccfdd18fb700cabb45fd74fcd291c8.tar.gz llvm-8dcb629aa4ccfdd18fb700cabb45fd74fcd291c8.tar.bz2 |
[clang][ExtractAPI] Fix naming of typedef'd anonymous enums
Anonymous enums that are typedef'd should take on the name of the typedef.
Differential Revision: https://reviews.llvm.org/D140010
Diffstat (limited to 'clang/lib/ExtractAPI/ExtractAPIVisitor.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/ExtractAPIVisitor.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/ExtractAPI/ExtractAPIVisitor.cpp b/clang/lib/ExtractAPI/ExtractAPIVisitor.cpp index 38d95aa..24260cf 100644 --- a/clang/lib/ExtractAPI/ExtractAPIVisitor.cpp +++ b/clang/lib/ExtractAPI/ExtractAPIVisitor.cpp @@ -29,6 +29,7 @@ #include "clang/ExtractAPI/DeclarationFragments.h" #include "clang/Frontend/ASTConsumers.h" #include "clang/Frontend/FrontendOptions.h" +#include "llvm/Support/raw_ostream.h" using namespace clang; using namespace extractapi; @@ -167,11 +168,16 @@ bool ExtractAPIVisitor::VisitEnumDecl(const EnumDecl *Decl) { if (!LocationChecker(Decl->getLocation())) return true; + SmallString<128> QualifiedNameBuffer; // Collect symbol information. - std::string NameString = Decl->getQualifiedNameAsString(); - StringRef Name(NameString); + StringRef Name = Decl->getName(); if (Name.empty()) Name = getTypedefName(Decl); + if (Name.empty()) { + llvm::raw_svector_ostream OS(QualifiedNameBuffer); + Decl->printQualifiedName(OS); + Name = QualifiedNameBuffer.str(); + } StringRef USR = API.recordUSR(Decl); PresumedLoc Loc = |