From d6e9fa55eba409648503e87f20cde0b3e11c9d71 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 27 Sep 2011 00:30:30 +0000 Subject: [PATCH] [libclang] Introduce clang_Cursor_isNull and clang_Cursor_getTranslationUnit functions. llvm-svn: 140587 --- clang/include/clang-c/Index.h | 12 ++++++++++++ clang/tools/libclang/CXCursor.cpp | 8 ++++++++ clang/tools/libclang/libclang.exports | 1 + 3 files changed, 21 insertions(+) diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index 07bcf9eec6ed..6bd0286d6ecf 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -1554,6 +1554,13 @@ CINDEX_LINKAGE CXCursor clang_getTranslationUnitCursor(CXTranslationUnit); */ CINDEX_LINKAGE unsigned clang_equalCursors(CXCursor, CXCursor); +/** + * \brief Returns non-zero if \arg cursor is null. + */ +static inline int clang_Cursor_isNull(CXCursor cursor) { + return clang_equalCursors(cursor, clang_getNullCursor()); +} + /** * \brief Compute a hash value for the given cursor. */ @@ -1669,6 +1676,11 @@ CINDEX_LINKAGE enum CXLanguageKind { */ CINDEX_LINKAGE enum CXLanguageKind clang_getCursorLanguage(CXCursor cursor); +/** + * \brief Returns the translation unit that a cursor originated from. + */ +CINDEX_LINKAGE CXTranslationUnit clang_Cursor_getTranslationUnit(CXCursor); + /** * \brief A fast container representing a set of CXCursors. diff --git a/clang/tools/libclang/CXCursor.cpp b/clang/tools/libclang/CXCursor.cpp index eb54ed2b6889..c0e038467fbb 100644 --- a/clang/tools/libclang/CXCursor.cpp +++ b/clang/tools/libclang/CXCursor.cpp @@ -518,6 +518,14 @@ bool cxcursor::isFirstInDeclGroup(CXCursor C) { return ((uintptr_t) (C.data[1])) != 0; } +//===----------------------------------------------------------------------===// +// libclang CXCursor APIs +//===----------------------------------------------------------------------===// + +CXTranslationUnit clang_Cursor_getTranslationUnit(CXCursor cursor) { + return getCursorTU(cursor); +} + //===----------------------------------------------------------------------===// // CXCursorSet. //===----------------------------------------------------------------------===// diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index d01bb07f0c89..71cd2614385d 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -20,6 +20,7 @@ clang_createCXCursorSet clang_createIndex clang_createTranslationUnit clang_createTranslationUnitFromSourceFile +clang_Cursor_getTranslationUnit clang_defaultCodeCompleteOptions clang_defaultDiagnosticDisplayOptions clang_defaultEditingTranslationUnitOptions