From 9f0df1bceeeabd23d90ba888bcf1cf9957f6bf15 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Fri, 20 Nov 2015 14:15:24 +0100 Subject: [PATCH] src: Handling of Anonymous Enums * names of anonymous enums are constructed like names of anonymous namespaces. --- .../parser/cxx/name_resolver/CxxDeclNameResolver.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/data/parser/cxx/name_resolver/CxxDeclNameResolver.cpp b/src/lib/data/parser/cxx/name_resolver/CxxDeclNameResolver.cpp index a4ea4ebd..fc7f6299 100644 --- a/src/lib/data/parser/cxx/name_resolver/CxxDeclNameResolver.cpp +++ b/src/lib/data/parser/cxx/name_resolver/CxxDeclNameResolver.cpp @@ -5,6 +5,7 @@ #include "data/parser/cxx/name_resolver/CxxTemplateArgumentNameResolver.h" #include "data/parser/cxx/name_resolver/CxxTypeNameResolver.h" +#include "utility/file/FilePath.h" #include "utility/logging/logging.h" CxxDeclNameResolver::CxxDeclNameResolver(const clang::Decl* declaration) @@ -180,7 +181,13 @@ std::string CxxDeclNameResolver::getDeclName() { const clang::SourceManager& sourceManager = declaration->getASTContext().getSourceManager(); const clang::PresumedLoc& presumedBegin = sourceManager.getPresumedLoc(declaration->getLocStart()); - declName = "anonymous namespace (" + std::string(presumedBegin.getFilename()) + ")"; + declName = "anonymous namespace (" + FilePath(presumedBegin.getFilename()).fileName() + ")"; + } + else if (clang::isa(declaration) && declName.size() == 0) + { + const clang::SourceManager& sourceManager = declaration->getASTContext().getSourceManager(); + const clang::PresumedLoc& presumedBegin = sourceManager.getPresumedLoc(declaration->getLocStart()); + declName = "anonymous enum (" + FilePath(presumedBegin.getFilename()).fileName() + ")"; } return declName;