diff options
-rw-r--r-- | clang/include/clang-c/Index.h | 6 | ||||
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 7 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.darwin.exports | 1 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.exports | 1 |
4 files changed, 15 insertions, 0 deletions
diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index 663737a0f36..5fd5cbd1f0a 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -343,6 +343,12 @@ CINDEX_LINKAGE CXSourceLocation clang_getRangeStart(CXSourceRange range); CINDEX_LINKAGE CXSourceLocation clang_getRangeEnd(CXSourceRange range); /** + * \brief Determine if the source location occurs within the main file + * of the translation unit (as opposed to an included header). + */ +CINDEX_LINKAGE unsigned clang_isFromMainFile(CXSourceLocation loc); + +/** * @} */ diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 945d05bf23e..d0773565a95 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -1479,6 +1479,13 @@ CXSourceLocation clang_getRangeEnd(CXSourceRange range) { return Result; } +unsigned clang_isFromMainFile(CXSourceLocation loc) { + SourceLocation Loc = SourceLocation::getFromRawEncoding(loc.int_data); + const SourceManager &SM = + *static_cast<const SourceManager*>(loc.ptr_data[0]); + return SM.isFromMainFile(Loc) ? 1 : 0; +} + } // end: extern "C" //===----------------------------------------------------------------------===// diff --git a/clang/tools/libclang/libclang.darwin.exports b/clang/tools/libclang/libclang.darwin.exports index 4b61bd34cbd..59888f173b0 100644 --- a/clang/tools/libclang/libclang.darwin.exports +++ b/clang/tools/libclang/libclang.darwin.exports @@ -77,6 +77,7 @@ _clang_getTypeKindSpelling _clang_isCursorDefinition _clang_isDeclaration _clang_isExpression +_clang_isFromMainFile _clang_isInvalid _clang_isPreprocessing _clang_isReference diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index 744ba714360..12062470f22 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -77,6 +77,7 @@ clang_getTypeKindSpelling clang_isCursorDefinition clang_isDeclaration clang_isExpression +clang_isFromMainFile clang_isInvalid clang_isPreprocessing clang_isReference |