[clang][Index] Replace CodegenNameGenerator with ASTNameGenerator

Follow-up to: 3ff8c3b73f, d5d15b4c1f

Should be NFC since the original patch just moved the code.

llvm-svn: 371117
This commit is contained in:
Jan Korous 2019-09-05 20:33:52 +00:00
parent f803237926
commit 7e36ecd66d
5 changed files with 11 additions and 100 deletions

View File

@ -1,52 +0,0 @@
//===- CodegenNameGenerator.h - Codegen name generation -------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Determines the name that the symbol will get for code generation.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CLANG_INDEX_CODEGENNAMEGENERATOR_H
#define LLVM_CLANG_INDEX_CODEGENNAMEGENERATOR_H
#include "clang/AST/Mangle.h"
#include "clang/Basic/LLVM.h"
#include <memory>
#include <string>
#include <vector>
namespace clang {
class ASTContext;
class Decl;
namespace index {
class CodegenNameGenerator {
public:
explicit CodegenNameGenerator(ASTContext &Ctx);
~CodegenNameGenerator();
/// \returns true on failure to produce a name for the given decl, false on
/// success.
bool writeName(const Decl *D, raw_ostream &OS);
/// Version of \c writeName function that returns a string.
std::string getName(const Decl *D);
/// This can return multiple mangled names when applicable, e.g. for C++
/// constructors/destructors.
std::vector<std::string> getAllManglings(const Decl *D);
private:
struct Implementation;
std::unique_ptr<ASTNameGenerator> Impl;
};
} // namespace index
} // namespace clang
#endif // LLVM_CLANG_INDEX_CODEGENNAMEGENERATOR_H

View File

@ -4,7 +4,6 @@ set(LLVM_LINK_COMPONENTS
)
add_clang_library(clangIndex
CodegenNameGenerator.cpp
CommentToXML.cpp
FileIndexRecord.cpp
IndexBody.cpp

View File

@ -1,36 +0,0 @@
//===- CodegenNameGenerator.cpp - Codegen name generation -----------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Determines the name that the symbol will get for code generation.
//
//===----------------------------------------------------------------------===//
#include "clang/Index/CodegenNameGenerator.h"
#include "clang/AST/ASTContext.h"
using namespace clang;
using namespace clang::index;
CodegenNameGenerator::CodegenNameGenerator(ASTContext &Ctx)
: Impl(new ASTNameGenerator(Ctx)) {
}
CodegenNameGenerator::~CodegenNameGenerator() {
}
bool CodegenNameGenerator::writeName(const Decl *D, raw_ostream &OS) {
return Impl->writeName(D, OS);
}
std::string CodegenNameGenerator::getName(const Decl *D) {
return Impl->getName(D);
}
std::vector<std::string> CodegenNameGenerator::getAllManglings(const Decl *D) {
return Impl->getAllManglings(D);
}

View File

@ -6,6 +6,7 @@
//
//===----------------------------------------------------------------------===//
#include "clang/AST/Mangle.h"
#include "clang/Basic/LangOptions.h"
#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
#include "clang/Frontend/ASTUnit.h"
@ -15,7 +16,6 @@
#include "clang/Index/IndexingAction.h"
#include "clang/Index/IndexDataConsumer.h"
#include "clang/Index/USRGeneration.h"
#include "clang/Index/CodegenNameGenerator.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Serialization/ASTReader.h"
#include "llvm/Support/CommandLine.h"
@ -79,7 +79,7 @@ namespace {
class PrintIndexDataConsumer : public IndexDataConsumer {
raw_ostream &OS;
std::unique_ptr<CodegenNameGenerator> CGNameGen;
std::unique_ptr<ASTNameGenerator> ASTNameGen;
std::shared_ptr<Preprocessor> PP;
public:
@ -87,7 +87,7 @@ public:
}
void initialize(ASTContext &Ctx) override {
CGNameGen.reset(new CodegenNameGenerator(Ctx));
ASTNameGen.reset(new ASTNameGenerator(Ctx));
}
void setPreprocessor(std::shared_ptr<Preprocessor> PP) override {
@ -112,7 +112,7 @@ public:
printSymbolNameAndUSR(D, Ctx, OS);
OS << " | ";
if (CGNameGen->writeName(D, OS))
if (ASTNameGen->writeName(D, OS))
OS << "<no-cgname>";
OS << " | ";

View File

@ -21,6 +21,7 @@
#include "CXType.h"
#include "CursorVisitor.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticCategories.h"
@ -30,7 +31,6 @@
#include "clang/Basic/Version.h"
#include "clang/Frontend/ASTUnit.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Index/CodegenNameGenerator.h"
#include "clang/Index/CommentToXML.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/Lexer.h"
@ -4737,8 +4737,8 @@ CXString clang_Cursor_getMangling(CXCursor C) {
return cxstring::createEmpty();
ASTContext &Ctx = D->getASTContext();
index::CodegenNameGenerator CGNameGen(Ctx);
return cxstring::createDup(CGNameGen.getName(D));
ASTNameGenerator ASTNameGen(Ctx);
return cxstring::createDup(ASTNameGen.getName(D));
}
CXStringSet *clang_Cursor_getCXXManglings(CXCursor C) {
@ -4750,8 +4750,8 @@ CXStringSet *clang_Cursor_getCXXManglings(CXCursor C) {
return nullptr;
ASTContext &Ctx = D->getASTContext();
index::CodegenNameGenerator CGNameGen(Ctx);
std::vector<std::string> Manglings = CGNameGen.getAllManglings(D);
ASTNameGenerator ASTNameGen(Ctx);
std::vector<std::string> Manglings = ASTNameGen.getAllManglings(D);
return cxstring::createSet(Manglings);
}
@ -4764,8 +4764,8 @@ CXStringSet *clang_Cursor_getObjCManglings(CXCursor C) {
return nullptr;
ASTContext &Ctx = D->getASTContext();
index::CodegenNameGenerator CGNameGen(Ctx);
std::vector<std::string> Manglings = CGNameGen.getAllManglings(D);
ASTNameGenerator ASTNameGen(Ctx);
std::vector<std::string> Manglings = ASTNameGen.getAllManglings(D);
return cxstring::createSet(Manglings);
}