diff options
-rw-r--r-- | include/clang-c/Index.h | 1 | ||||
-rw-r--r-- | tools/CIndex/CIndex.cpp | 8 | ||||
-rw-r--r-- | tools/CIndex/CIndex.exports | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h index 2203e28723..3178017e45 100644 --- a/include/clang-c/Index.h +++ b/include/clang-c/Index.h @@ -177,6 +177,7 @@ CXEntity clang_getEntityFromDecl(CXDecl); const char *clang_getDeclSpelling(CXDecl); unsigned clang_getDeclLine(CXDecl); unsigned clang_getDeclColumn(CXDecl); +const char *clang_getDeclSource(CXDecl); /* * CXCursor Operations. diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp index 74b3cfd8af..ff0be0d9e2 100644 --- a/tools/CIndex/CIndex.cpp +++ b/tools/CIndex/CIndex.cpp @@ -370,6 +370,14 @@ unsigned clang_getDeclColumn(CXDecl AnonDecl) return SourceMgr.getSpellingLineNumber(ND->getLocation()); } +const char *clang_getDeclSource(CXDecl AnonDecl) +{ + assert(AnonDecl && "Passed null CXDecl"); + NamedDecl *ND = static_cast<NamedDecl *>(AnonDecl); + SourceManager &SourceMgr = ND->getASTContext().getSourceManager(); + return SourceMgr.getBufferName(ND->getLocation()); +} + const char *clang_getCursorSpelling(CXCursor C) { assert(C.decl && "CXCursor has null decl"); diff --git a/tools/CIndex/CIndex.exports b/tools/CIndex/CIndex.exports index 8cfc1a9d7f..c1ca0c7735 100644 --- a/tools/CIndex/CIndex.exports +++ b/tools/CIndex/CIndex.exports @@ -11,6 +11,7 @@ _clang_getDeclarationName _clang_getDeclSpelling _clang_getDeclLine _clang_getDeclColumn +_clang_getDeclSource _clang_getEntity _clang_getEntityFromDecl _clang_getURI |