clang
3.9.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
llvm.src
tools
clang
include
clang
Index
CodegenNameGenerator.h
Go to the documentation of this file.
1
//===- CodegenNameGenerator.h - Codegen name generation -------------------===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// Determines the name that the symbol will get for code generation.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_CLANG_INDEX_CODEGENNAMEGENERATOR_H
15
#define LLVM_CLANG_INDEX_CODEGENNAMEGENERATOR_H
16
17
#include "
clang/Basic/LLVM.h
"
18
#include <memory>
19
#include <string>
20
#include <vector>
21
22
namespace
clang {
23
class
ASTContext
;
24
class
Decl
;
25
26
namespace
index {
27
28
class
CodegenNameGenerator
{
29
public
:
30
explicit
CodegenNameGenerator
(
ASTContext
&Ctx);
31
~CodegenNameGenerator
();
32
33
/// \returns true on failure to produce a name for the given decl, false on
34
/// success.
35
bool
writeName
(
const
Decl
*D, raw_ostream &OS);
36
37
/// Version of \c writeName function that returns a string.
38
std::string
getName
(
const
Decl
*D);
39
40
/// This can return multiple mangled names when applicable, e.g. for C++
41
/// constructors/destructors.
42
std::vector<std::string>
getAllManglings
(
const
Decl
*D);
43
44
private
:
45
struct
Implementation
;
46
std::unique_ptr<Implementation> Impl;
47
};
48
49
}
// namespace index
50
}
// namespace clang
51
52
#endif // LLVM_CLANG_INDEX_CODEGENNAMEGENERATOR_H
clang::index::CodegenNameGenerator::CodegenNameGenerator
CodegenNameGenerator(ASTContext &Ctx)
Definition:
CodegenNameGenerator.cpp:178
Decl
clang::ASTContext
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition:
ASTContext.h:92
LLVM.h
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
clang::index::CodegenNameGenerator::getAllManglings
std::vector< std::string > getAllManglings(const Decl *D)
This can return multiple mangled names when applicable, e.g.
Definition:
CodegenNameGenerator.cpp:193
clang::index::CodegenNameGenerator::writeName
bool writeName(const Decl *D, raw_ostream &OS)
Definition:
CodegenNameGenerator.cpp:185
clang::ASTContext
friend class ASTContext
Definition:
Type.h:4178
clang::index::CodegenNameGenerator
Definition:
CodegenNameGenerator.h:28
clang::index::CodegenNameGenerator::getName
std::string getName(const Decl *D)
Version of writeName function that returns a string.
Definition:
CodegenNameGenerator.cpp:189
clang::index::CodegenNameGenerator::~CodegenNameGenerator
~CodegenNameGenerator()
Definition:
CodegenNameGenerator.cpp:182
clang::index::CodegenNameGenerator::Implementation
Definition:
CodegenNameGenerator.cpp:28
Generated on Wed Aug 31 2016 16:58:01 for clang by
1.8.6