зеркало из https://github.com/microsoft/clang-1.git
[libclang] Introduce clang_Module_getASTFile function that returns the module file where a module object came from.
rdar://13743084 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180643 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
888d34566a
Коммит
e858e667c1
|
@ -3464,6 +3464,13 @@ typedef void *CXModule;
|
|||
*/
|
||||
CINDEX_LINKAGE CXModule clang_Cursor_getModule(CXCursor C);
|
||||
|
||||
/**
|
||||
* \param Module a module object.
|
||||
*
|
||||
* \returns the module file where the provided module object came from.
|
||||
*/
|
||||
CINDEX_LINKAGE CXFile clang_Module_getASTFile(CXModule Module);
|
||||
|
||||
/**
|
||||
* \param Module a module object.
|
||||
*
|
||||
|
|
|
@ -40,3 +40,10 @@ int glob;
|
|||
// CHECK-MOD-NEXT: Punctuation: "*" [2:5 - 2:6] VarDecl=Module_Sub:2:6
|
||||
// CHECK-MOD-NEXT: Identifier: "Module_Sub" [2:6 - 2:16] VarDecl=Module_Sub:2:6
|
||||
// CHECK-MOD-NEXT: Punctuation: ";" [2:16 - 2:17]
|
||||
|
||||
// RUN: c-index-test -cursor-at=%s:3:11 %s -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs \
|
||||
// RUN: | FileCheck %s -check-prefix=CHECK-CURSOR
|
||||
|
||||
// CHECK-CURSOR: 3:1 ModuleImport=DependsOnModule:3:1 (Definition) Extent=[3:1 - 3:24] Spelling=DependsOnModule ([3:9 - 3:24]) ModuleName=DependsOnModule ({{.*}}DependsOnModule.pcm) Headers(2):
|
||||
// CHECK-CURSOR-NEXT: {{.*}}other.h
|
||||
// CHECK-CURSOR-NEXT: {{.*}}DependsOnModule.h
|
||||
|
|
|
@ -2105,14 +2105,19 @@ static int inspect_cursor_at(int argc, const char **argv) {
|
|||
|
||||
{
|
||||
CXModule mod = clang_Cursor_getModule(Cursor);
|
||||
CXString name;
|
||||
CXFile astFile;
|
||||
CXString name, astFilename;
|
||||
unsigned i, numHeaders;
|
||||
if (mod) {
|
||||
astFile = clang_Module_getASTFile(mod);
|
||||
astFilename = clang_getFileName(astFile);
|
||||
name = clang_Module_getFullName(mod);
|
||||
numHeaders = clang_Module_getNumTopLevelHeaders(TU, mod);
|
||||
printf(" ModuleName=%s Headers(%d):",
|
||||
clang_getCString(name), numHeaders);
|
||||
printf(" ModuleName=%s (%s) Headers(%d):",
|
||||
clang_getCString(name), clang_getCString(astFilename),
|
||||
numHeaders);
|
||||
clang_disposeString(name);
|
||||
clang_disposeString(astFilename);
|
||||
for (i = 0; i < numHeaders; ++i) {
|
||||
CXFile file = clang_Module_getTopLevelHeader(TU, mod, i);
|
||||
CXString filename = clang_getFileName(file);
|
||||
|
|
|
@ -6055,6 +6055,13 @@ CXModule clang_Cursor_getModule(CXCursor C) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
CXFile clang_Module_getASTFile(CXModule CXMod) {
|
||||
if (!CXMod)
|
||||
return 0;
|
||||
Module *Mod = static_cast<Module*>(CXMod);
|
||||
return const_cast<FileEntry *>(Mod->getASTFile());
|
||||
}
|
||||
|
||||
CXModule clang_Module_getParent(CXModule CXMod) {
|
||||
if (!CXMod)
|
||||
return 0;
|
||||
|
|
|
@ -21,6 +21,7 @@ clang_Cursor_isDynamicCall
|
|||
clang_Cursor_isNull
|
||||
clang_Cursor_isVariadic
|
||||
clang_Cursor_getModule
|
||||
clang_Module_getASTFile
|
||||
clang_Module_getParent
|
||||
clang_Module_getName
|
||||
clang_Module_getFullName
|
||||
|
|
Загрузка…
Ссылка в новой задаче