mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-08 00:52:54 +00:00
[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:
parent
f803237926
commit
7e36ecd66d
@ -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
|
@ -4,7 +4,6 @@ set(LLVM_LINK_COMPONENTS
|
||||
)
|
||||
|
||||
add_clang_library(clangIndex
|
||||
CodegenNameGenerator.cpp
|
||||
CommentToXML.cpp
|
||||
FileIndexRecord.cpp
|
||||
IndexBody.cpp
|
||||
|
@ -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);
|
||||
}
|
@ -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 << " | ";
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user