From: Argyrios Kyrtzidis Date: Fri, 9 Dec 2011 00:17:49 +0000 (+0000) Subject: [libclang] Make sure we don't try to handle a CXCursor_NoDeclFound X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4451746d8f658b51eaf15dd24664a488457063a9;p=clang [libclang] Make sure we don't try to handle a CXCursor_NoDeclFound passed to clang_findReferencesInFile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146211 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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(static_cast(Cursor.data[2]) - ->TUData); + CXTranslationUnit TU = static_cast(Cursor.data[2]); + if (!TU) + return 0; + return static_cast(TU->TUData); } CXTranslationUnit cxcursor::getCursorTU(CXCursor Cursor) {