clang
8.0.0
|
Classes | |
class | CodegenNameGenerator |
class | CommentToXMLConverter |
class | IndexDataConsumer |
class | IndexingContext |
struct | IndexingOptions |
class | SimpleFormatContext |
A small class to be used by libclang clients to format a declaration string in memory. More... | |
struct | SymbolInfo |
struct | SymbolRelation |
Represents a relation to another symbol for a symbol occurrence. More... | |
Typedefs | |
typedef uint16_t | SymbolPropertySet |
typedef unsigned | SymbolRoleSet |
Functions | |
std::unique_ptr< FrontendAction > | createIndexingAction (std::shared_ptr< IndexDataConsumer > DataConsumer, IndexingOptions Opts, std::unique_ptr< FrontendAction > WrappedAction) |
Creates a frontend action that indexes all symbols (macros and AST decls). More... | |
void | indexASTUnit (ASTUnit &Unit, IndexDataConsumer &DataConsumer, IndexingOptions Opts) |
Recursively indexes all decls in the AST. More... | |
void | indexTopLevelDecls (ASTContext &Ctx, Preprocessor &PP, ArrayRef< const Decl *> Decls, IndexDataConsumer &DataConsumer, IndexingOptions Opts) |
Recursively indexes Decls . More... | |
std::unique_ptr< PPCallbacks > | indexMacrosCallback (IndexDataConsumer &Consumer, IndexingOptions Opts) |
Creates a PPCallbacks that indexes macros and feeds macros to Consumer . More... | |
void | indexModuleFile (serialization::ModuleFile &Mod, ASTReader &Reader, IndexDataConsumer &DataConsumer, IndexingOptions Opts) |
Recursively indexes all top-level decls in the module. More... | |
SymbolInfo | getSymbolInfo (const Decl *D) |
SymbolInfo | getSymbolInfoForMacro (const MacroInfo &MI) |
bool | isFunctionLocalSymbol (const Decl *D) |
void | applyForEachSymbolRole (SymbolRoleSet Roles, llvm::function_ref< void(SymbolRole)> Fn) |
bool | applyForEachSymbolRoleInterruptible (SymbolRoleSet Roles, llvm::function_ref< bool(SymbolRole)> Fn) |
void | printSymbolRoles (SymbolRoleSet Roles, raw_ostream &OS) |
bool | printSymbolName (const Decl *D, const LangOptions &LO, raw_ostream &OS) |
StringRef | getSymbolKindString (SymbolKind K) |
StringRef | getSymbolSubKindString (SymbolSubKind K) |
StringRef | getSymbolLanguageString (SymbolLanguage K) |
void | applyForEachSymbolProperty (SymbolPropertySet Props, llvm::function_ref< void(SymbolProperty)> Fn) |
void | printSymbolProperties (SymbolPropertySet Props, raw_ostream &OS) |
static StringRef | getUSRSpacePrefix () |
bool | generateUSRForDecl (const Decl *D, SmallVectorImpl< char > &Buf) |
Generate a USR for a Decl, including the USR prefix. More... | |
void | generateUSRForObjCClass (StringRef Cls, raw_ostream &OS, StringRef ExtSymbolDefinedIn="", StringRef CategoryContextExtSymbolDefinedIn="") |
Generate a USR fragment for an Objective-C class. More... | |
void | generateUSRForObjCCategory (StringRef Cls, StringRef Cat, raw_ostream &OS, StringRef ClsExtSymbolDefinedIn="", StringRef CatExtSymbolDefinedIn="") |
Generate a USR fragment for an Objective-C class category. More... | |
void | generateUSRForObjCIvar (StringRef Ivar, raw_ostream &OS) |
Generate a USR fragment for an Objective-C instance variable. More... | |
void | generateUSRForObjCMethod (StringRef Sel, bool IsInstanceMethod, raw_ostream &OS) |
Generate a USR fragment for an Objective-C method. More... | |
void | generateUSRForObjCProperty (StringRef Prop, bool isClassProp, raw_ostream &OS) |
Generate a USR fragment for an Objective-C property. More... | |
void | generateUSRForObjCProtocol (StringRef Prot, raw_ostream &OS, StringRef ExtSymbolDefinedIn="") |
Generate a USR fragment for an Objective-C protocol. More... | |
void | generateUSRForGlobalEnum (StringRef EnumName, raw_ostream &OS, StringRef ExtSymbolDefinedIn="") |
Generate USR fragment for a global (non-nested) enum. More... | |
void | generateUSRForEnumConstant (StringRef EnumConstantName, raw_ostream &OS) |
Generate a USR fragment for an enum constant. More... | |
bool | generateUSRForMacro (const MacroDefinitionRecord *MD, const SourceManager &SM, SmallVectorImpl< char > &Buf) |
Generate a USR for a macro, including the USR prefix. More... | |
bool | generateUSRForMacro (StringRef MacroName, SourceLocation Loc, const SourceManager &SM, SmallVectorImpl< char > &Buf) |
bool | generateUSRForType (QualType T, ASTContext &Ctx, SmallVectorImpl< char > &Buf) |
Generates a USR for a type. More... | |
bool | generateFullUSRForModule (const Module *Mod, raw_ostream &OS) |
Generate a USR for a module, including the USR prefix. More... | |
bool | generateFullUSRForTopLevelModuleName (StringRef ModName, raw_ostream &OS) |
Generate a USR for a top-level module name, including the USR prefix. More... | |
bool | generateUSRFragmentForModule (const Module *Mod, raw_ostream &OS) |
Generate a USR fragment for a module. More... | |
bool | generateUSRFragmentForModuleName (StringRef ModName, raw_ostream &OS) |
Generate a USR fragment for a module name. More... | |
Variables | |
static const unsigned | SymbolPropertyBitNum = 9 |
static const unsigned | SymbolRoleBitNum = 20 |
typedef uint16_t clang::index::SymbolPropertySet |
Definition at line 78 of file IndexSymbol.h.
typedef unsigned clang::index::SymbolRoleSet |
Definition at line 124 of file IndexSymbol.h.
|
strong |
Definition at line 24 of file IndexSymbol.h.
|
strong |
Enumerator | |
---|---|
C | |
ObjC | |
CXX | |
Swift |
Definition at line 60 of file IndexSymbol.h.
|
strong |
Set of properties that provide additional info about a symbol.
Enumerator | |
---|---|
Generic | |
TemplatePartialSpecialization | |
TemplateSpecialization | |
UnitTest | |
IBAnnotated | |
IBOutletCollection | |
GKInspectable | |
Local | |
ProtocolInterface | Symbol is part of a protocol interface. |
Definition at line 80 of file IndexSymbol.h.
|
strong |
Set of roles that are attributed to symbol occurrences.
Low 9 bits of clang-c/include/Index.h CXSymbolRole mirrors this enum.
Definition at line 97 of file IndexSymbol.h.
|
strong |
Language specific sub-kinds.
Enumerator | |
---|---|
None | |
CXXCopyConstructor | |
CXXMoveConstructor | |
AccessorGetter | |
AccessorSetter | |
UsingTypename | |
UsingValue |
Definition at line 68 of file IndexSymbol.h.
void clang::index::applyForEachSymbolProperty | ( | SymbolPropertySet | Props, |
llvm::function_ref< void(SymbolProperty)> | Fn | ||
) |
Definition at line 511 of file IndexSymbol.cpp.
References APPLY_FOR_PROPERTY, Generic, GKInspectable, IBAnnotated, IBOutletCollection, Local, ProtocolInterface, TemplatePartialSpecialization, TemplateSpecialization, and UnitTest.
Referenced by printSymbolProperties().
void clang::index::applyForEachSymbolRole | ( | SymbolRoleSet | Roles, |
llvm::function_ref< void(SymbolRole)> | Fn | ||
) |
Definition at line 397 of file IndexSymbol.cpp.
References applyForEachSymbolRoleInterruptible().
Referenced by printSymbolRoles().
bool clang::index::applyForEachSymbolRoleInterruptible | ( | SymbolRoleSet | Roles, |
llvm::function_ref< bool(SymbolRole)> | Fn | ||
) |
Definition at line 364 of file IndexSymbol.cpp.
References AddressOf, APPLY_FOR_ROLE, Call, Declaration, Definition, Dynamic, Implicit, Read, Reference, RelationAccessorOf, RelationBaseOf, RelationCalledBy, RelationChildOf, RelationContainedBy, RelationExtendedBy, RelationIBTypeOf, RelationOverrideOf, RelationReceivedBy, RelationSpecializationOf, Undefinition, and Write.
Referenced by applyForEachSymbolRole(), and shouldReportOccurrenceForSystemDeclOnlyMode().
std::unique_ptr< FrontendAction > clang::index::createIndexingAction | ( | std::shared_ptr< IndexDataConsumer > | DataConsumer, |
IndexingOptions | Opts, | ||
std::unique_ptr< FrontendAction > | WrappedAction | ||
) |
Creates a frontend action that indexes all symbols (macros and AST decls).
WrappedAction | another frontend action to wrap over or null. |
Definition at line 200 of file IndexingAction.cpp.
Generate a USR for a module, including the USR prefix.
Definition at line 1120 of file USRGeneration.cpp.
References generateFullUSRForTopLevelModuleName(), generateUSRFragmentForModule(), clang::Module::Name, and clang::Module::Parent.
Referenced by getUSRSpacePrefix().
bool clang::index::generateFullUSRForTopLevelModuleName | ( | StringRef | ModName, |
raw_ostream & | OS | ||
) |
Generate a USR for a top-level module name, including the USR prefix.
Definition at line 1129 of file USRGeneration.cpp.
References generateUSRFragmentForModuleName(), and getUSRSpacePrefix().
Referenced by generateFullUSRForModule(), and getUSRSpacePrefix().
bool clang::index::generateUSRForDecl | ( | const Decl * | D, |
SmallVectorImpl< char > & | Buf | ||
) |
Generate a USR for a Decl, including the USR prefix.
Definition at line 1065 of file USRGeneration.cpp.
Referenced by clang::cross_tu::CrossTranslationUnitContext::getLookupName(), clang::tooling::getUSRForDecl(), and getUSRSpacePrefix().
void clang::index::generateUSRForEnumConstant | ( | StringRef | EnumConstantName, |
raw_ostream & | OS | ||
) |
Generate a USR fragment for an enum constant.
Definition at line 1060 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
void clang::index::generateUSRForGlobalEnum | ( | StringRef | EnumName, |
raw_ostream & | OS, | ||
StringRef | ExtSymbolDefinedIn = "" |
||
) |
Generate USR fragment for a global (non-nested) enum.
Definition at line 1053 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
bool clang::index::generateUSRForMacro | ( | const MacroDefinitionRecord * | MD, |
const SourceManager & | SM, | ||
SmallVectorImpl< char > & | Buf | ||
) |
Generate a USR for a macro, including the USR prefix.
Definition at line 1078 of file USRGeneration.cpp.
References clang::MacroDefinitionRecord::getLocation(), clang::IdentifierInfo::getName(), clang::MacroDefinitionRecord::getName(), and SM.
Referenced by getUSRSpacePrefix().
bool clang::index::generateUSRForMacro | ( | StringRef | MacroName, |
SourceLocation | Loc, | ||
const SourceManager & | SM, | ||
SmallVectorImpl< char > & | Buf | ||
) |
Definition at line 1088 of file USRGeneration.cpp.
References getUSRSpacePrefix(), clang::SourceManager::isInSystemHeader(), clang::SourceLocation::isInvalid(), and printLoc().
void clang::index::generateUSRForObjCCategory | ( | StringRef | Cls, |
StringRef | Cat, | ||
raw_ostream & | OS, | ||
StringRef | ClsExtSymbolDefinedIn = "" , |
||
StringRef | CatExtSymbolDefinedIn = "" |
||
) |
Generate a USR fragment for an Objective-C class category.
Definition at line 1023 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
void clang::index::generateUSRForObjCClass | ( | StringRef | Cls, |
raw_ostream & | OS, | ||
StringRef | ExtSymbolDefinedIn = "" , |
||
StringRef | CategoryContextExtSymbolDefinedIn = "" |
||
) |
Generate a USR fragment for an Objective-C class.
Definition at line 1015 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
void clang::index::generateUSRForObjCIvar | ( | StringRef | Ivar, |
raw_ostream & | OS | ||
) |
Generate a USR fragment for an Objective-C instance variable.
The complete USR can be created by concatenating the USR for the encompassing class with this USR fragment.
Definition at line 1031 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
void clang::index::generateUSRForObjCMethod | ( | StringRef | Sel, |
bool | IsInstanceMethod, | ||
raw_ostream & | OS | ||
) |
Generate a USR fragment for an Objective-C method.
Definition at line 1035 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
void clang::index::generateUSRForObjCProperty | ( | StringRef | Prop, |
bool | isClassProp, | ||
raw_ostream & | OS | ||
) |
Generate a USR fragment for an Objective-C property.
Definition at line 1041 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
void clang::index::generateUSRForObjCProtocol | ( | StringRef | Prot, |
raw_ostream & | OS, | ||
StringRef | ExtSymbolDefinedIn = "" |
||
) |
Generate a USR fragment for an Objective-C protocol.
Definition at line 1046 of file USRGeneration.cpp.
Referenced by getUSRSpacePrefix().
bool clang::index::generateUSRForType | ( | QualType | T, |
ASTContext & | Ctx, | ||
SmallVectorImpl< char > & | Buf | ||
) |
Generates a USR for a type.
Definition at line 1109 of file USRGeneration.cpp.
References clang::QualType::getCanonicalType(), and clang::QualType::isNull().
Referenced by getUSRSpacePrefix().
Generate a USR fragment for a module.
Definition at line 1135 of file USRGeneration.cpp.
References generateUSRFragmentForModuleName(), and clang::Module::Name.
Referenced by generateFullUSRForModule(), and getUSRSpacePrefix().
bool clang::index::generateUSRFragmentForModuleName | ( | StringRef | ModName, |
raw_ostream & | OS | ||
) |
Generate a USR fragment for a module name.
Definition at line 1140 of file USRGeneration.cpp.
Referenced by generateFullUSRForTopLevelModuleName(), generateUSRFragmentForModule(), and getUSRSpacePrefix().
SymbolInfo clang::index::getSymbolInfo | ( | const Decl * | D | ) |
Definition at line 88 of file IndexSymbol.cpp.
References AccessorGetter, AccessorSetter, C, checkForIBOutlets(), Class, ClassMethod, Constructor, ConversionFunction, CXX, CXXCopyConstructor, CXXMoveConstructor, Destructor, Enum, EnumConstant, Extension, Field, Function, Generic, clang::Decl::getAttr(), clang::Decl::getDeclContext(), clang::Decl::getKind(), GKInspectable, clang::Decl::hasAttr(), IBAnnotated, clang::if(), InstanceMethod, InstanceProperty, isFunctionLocalSymbol(), clang::ObjCMethodDecl::isInstanceMethod(), clang::ObjCMethodDecl::isPropertyAccessor(), clang::CXXMethodDecl::isStatic(), isUnitTest(), isUnitTestCase(), clang::index::SymbolInfo::Kind, clang::index::SymbolInfo::Lang, Local, Module, Namespace, NamespaceAlias, None, ObjC, clang::ObjCMethodDecl::param_size(), Parameter, clang::index::SymbolInfo::Properties, Protocol, ProtocolInterface, StaticMethod, StaticProperty, Struct, clang::index::SymbolInfo::SubKind, Swift, TemplatePartialSpecialization, TemplateSpecialization, clang::FunctionDecl::TK_FunctionTemplateSpecialization, clang::TTK_Class, clang::TTK_Enum, clang::TTK_Interface, clang::TTK_Struct, clang::TTK_Union, TypeAlias, Union, UnitTest, Unknown, Using, UsingTypename, UsingValue, and Variable.
SymbolInfo clang::index::getSymbolInfoForMacro | ( | const MacroInfo & | MI | ) |
Definition at line 355 of file IndexSymbol.cpp.
References C, clang::index::SymbolInfo::Kind, clang::index::SymbolInfo::Lang, Macro, None, clang::index::SymbolInfo::Properties, and clang::index::SymbolInfo::SubKind.
StringRef clang::index::getSymbolKindString | ( | SymbolKind | K | ) |
Definition at line 455 of file IndexSymbol.cpp.
References Class, ClassMethod, ClassProperty, Constructor, ConversionFunction, Destructor, Enum, EnumConstant, Extension, Field, Function, InstanceMethod, InstanceProperty, Macro, Module, Namespace, NamespaceAlias, Parameter, Protocol, StaticMethod, StaticProperty, Struct, TypeAlias, Union, Unknown, Using, and Variable.
StringRef clang::index::getSymbolLanguageString | ( | SymbolLanguage | K | ) |
StringRef clang::index::getSymbolSubKindString | ( | SymbolSubKind | K | ) |
Definition at line 488 of file IndexSymbol.cpp.
References AccessorGetter, AccessorSetter, CXXCopyConstructor, CXXMoveConstructor, None, UsingTypename, and UsingValue.
|
inlinestatic |
Definition at line 27 of file USRGeneration.h.
References generateFullUSRForModule(), generateFullUSRForTopLevelModuleName(), generateUSRForDecl(), generateUSRForEnumConstant(), generateUSRForGlobalEnum(), generateUSRForMacro(), generateUSRForObjCCategory(), generateUSRForObjCClass(), generateUSRForObjCIvar(), generateUSRForObjCMethod(), generateUSRForObjCProperty(), generateUSRForObjCProtocol(), generateUSRForType(), generateUSRFragmentForModule(), generateUSRFragmentForModuleName(), and SM.
Referenced by generateFullUSRForTopLevelModuleName(), and generateUSRForMacro().
void clang::index::indexASTUnit | ( | ASTUnit & | Unit, |
IndexDataConsumer & | DataConsumer, | ||
IndexingOptions | Opts | ||
) |
Recursively indexes all decls in the AST.
Definition at line 229 of file IndexingAction.cpp.
References clang::index::IndexDataConsumer::finish(), clang::ASTUnit::getASTContext(), clang::ASTUnit::getPreprocessor(), clang::ASTUnit::getPreprocessorPtr(), clang::index::IndexingOptions::IndexMacrosInPreprocessor, indexPreprocessorMacros(), indexTranslationUnit(), clang::index::IndexDataConsumer::initialize(), clang::index::IndexingContext::setASTContext(), and clang::index::IndexDataConsumer::setPreprocessor().
std::unique_ptr< PPCallbacks > clang::index::indexMacrosCallback | ( | IndexDataConsumer & | Consumer, |
IndexingOptions | Opts | ||
) |
Creates a PPCallbacks that indexes macros and feeds macros to Consumer
.
The caller is responsible for calling Consumer.setPreprocessor()
.
Definition at line 260 of file IndexingAction.cpp.
void clang::index::indexModuleFile | ( | serialization::ModuleFile & | Mod, |
ASTReader & | Reader, | ||
IndexDataConsumer & | DataConsumer, | ||
IndexingOptions | Opts | ||
) |
Recursively indexes all top-level decls in the module.
Definition at line 265 of file IndexingAction.cpp.
References clang::index::IndexDataConsumer::finish(), clang::ASTReader::getContext(), clang::ASTReader::getModuleFileLevelDecls(), clang::ASTReader::getPreprocessor(), clang::index::IndexingOptions::IndexMacrosInPreprocessor, indexPreprocessorMacros(), clang::index::IndexingContext::indexTopLevelDecl(), clang::index::IndexDataConsumer::initialize(), and clang::index::IndexingContext::setASTContext().
void clang::index::indexTopLevelDecls | ( | ASTContext & | Ctx, |
Preprocessor & | PP, | ||
ArrayRef< const Decl *> | Decls, | ||
IndexDataConsumer & | DataConsumer, | ||
IndexingOptions | Opts | ||
) |
Recursively indexes Decls
.
Definition at line 242 of file IndexingAction.cpp.
References clang::index::IndexDataConsumer::finish(), clang::index::IndexingOptions::IndexMacrosInPreprocessor, indexPreprocessorMacros(), clang::index::IndexingContext::indexTopLevelDecl(), clang::index::IndexDataConsumer::initialize(), and clang::index::IndexingContext::setASTContext().
Definition at line 53 of file IndexSymbol.cpp.
References clang::ExternalLinkage, clang::Decl::getParentFunctionOrMethod(), clang::InternalLinkage, clang::ModuleInternalLinkage, clang::ModuleLinkage, clang::NoLinkage, clang::UniqueExternalLinkage, and clang::VisibleNoLinkage.
Referenced by getSymbolInfo(), clang::index::IndexingContext::handleReference(), clang::index::IndexingContext::indexTagDecl(), and shouldReportOccurrenceForSystemDeclOnlyMode().
bool clang::index::printSymbolName | ( | const Decl * | D, |
const LangOptions & | LO, | ||
raw_ostream & | OS | ||
) |
Definition at line 437 of file IndexSymbol.cpp.
References clang::DeclarationName::isEmpty(), clang::DeclarationName::print(), and clang::PrintingPolicy::SuppressTemplateArgsInCXXConstructors.
void clang::index::printSymbolProperties | ( | SymbolPropertySet | Props, |
raw_ostream & | OS | ||
) |
Definition at line 530 of file IndexSymbol.cpp.
References applyForEachSymbolProperty(), Generic, GKInspectable, IBAnnotated, IBOutletCollection, Local, ProtocolInterface, TemplatePartialSpecialization, TemplateSpecialization, and UnitTest.
void clang::index::printSymbolRoles | ( | SymbolRoleSet | Roles, |
raw_ostream & | OS | ||
) |
Definition at line 405 of file IndexSymbol.cpp.
References AddressOf, applyForEachSymbolRole(), Call, Declaration, Definition, Dynamic, Implicit, Read, Reference, RelationAccessorOf, RelationBaseOf, RelationCalledBy, RelationChildOf, RelationContainedBy, RelationExtendedBy, RelationIBTypeOf, RelationOverrideOf, RelationReceivedBy, RelationSpecializationOf, Undefinition, and Write.
|
static |
Definition at line 92 of file IndexSymbol.h.
|
static |
Definition at line 123 of file IndexSymbol.h.