diff options
-rw-r--r-- | tools/libclang/CIndexHigh.cpp | 5 | ||||
-rw-r--r-- | tools/libclang/CXCursor.cpp | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/tools/libclang/CIndexHigh.cpp b/tools/libclang/CIndexHigh.cpp index bbb6d6dcad..4eabefb925 100644 --- a/tools/libclang/CIndexHigh.cpp +++ b/tools/libclang/CIndexHigh.cpp @@ -344,6 +344,11 @@ void clang_findReferencesInFile(CXCursor cursor, CXFile file, llvm::errs() << "clang_findReferencesInFile: Null cursor\n"; return; } + if (cursor.kind == CXCursor_NoDeclFound) { + if (Logging) + llvm::errs() << "clang_findReferencesInFile: Got CXCursor_NoDeclFound\n"; + return; + } if (!file) { if (Logging) llvm::errs() << "clang_findReferencesInFile: Null file\n"; diff --git a/tools/libclang/CXCursor.cpp b/tools/libclang/CXCursor.cpp index b4b9ed9d30..5117a4d2b3 100644 --- a/tools/libclang/CXCursor.cpp +++ b/tools/libclang/CXCursor.cpp @@ -746,8 +746,10 @@ ASTContext &cxcursor::getCursorContext(CXCursor Cursor) { } ASTUnit *cxcursor::getCursorASTUnit(CXCursor Cursor) { - return static_cast<ASTUnit *>(static_cast<CXTranslationUnit>(Cursor.data[2]) - ->TUData); + CXTranslationUnit TU = static_cast<CXTranslationUnit>(Cursor.data[2]); + if (!TU) + return 0; + return static_cast<ASTUnit *>(TU->TUData); } CXTranslationUnit cxcursor::getCursorTU(CXCursor Cursor) { |