diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index f1e62ae42079..e37779ce0662 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -335,6 +335,11 @@ CINDEX_LINKAGE CXSourceRange clang_getRange(CXSourceLocation begin, CINDEX_LINKAGE unsigned clang_equalRanges(CXSourceRange range1, CXSourceRange range2); +/** + * \brief Returns non-zero if \arg range is null. + */ +int clang_Range_isNull(CXSourceRange range); + /** * \brief Retrieve the file, line, column, and offset represented by * the given source location. diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 737181741776..a8126315ca5a 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -2758,6 +2758,11 @@ unsigned clang_equalRanges(CXSourceRange range1, CXSourceRange range2) && range1.begin_int_data == range2.begin_int_data && range1.end_int_data == range2.end_int_data; } + +int clang_Range_isNull(CXSourceRange range) { + return clang_equalRanges(range, clang_getNullRange()); +} + } // end: extern "C" static void createNullLocation(CXFile *file, unsigned *line, diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index 4ebbf9ebd692..89d41318d944 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -142,6 +142,7 @@ clang_isUnexposed clang_isVirtualBase clang_isVolatileQualifiedType clang_parseTranslationUnit +clang_Range_isNull clang_remap_dispose clang_remap_getFilenames clang_remap_getNumFiles