diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-12-09 00:17:49 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-12-09 00:17:49 +0000 |
commit | fa469d0efd003aeb31d2fb06c22b547c22937a5a (patch) | |
tree | 2005913470764d299ba288507ba1fc5eb633b9e1 /clang/tools/libclang | |
parent | c5dbeeadc16a0a762a076bd94d226f8c5127cdbb (diff) | |
download | bcm5719-llvm-fa469d0efd003aeb31d2fb06c22b547c22937a5a.tar.gz bcm5719-llvm-fa469d0efd003aeb31d2fb06c22b547c22937a5a.zip |
[libclang] Make sure we don't try to handle a CXCursor_NoDeclFound
passed to clang_findReferencesInFile.
llvm-svn: 146211
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r-- | clang/tools/libclang/CIndexHigh.cpp | 5 | ||||
-rw-r--r-- | clang/tools/libclang/CXCursor.cpp | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/clang/tools/libclang/CIndexHigh.cpp b/clang/tools/libclang/CIndexHigh.cpp index bbb6d6dcadb..4eabefb9259 100644 --- a/clang/tools/libclang/CIndexHigh.cpp +++ b/clang/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/clang/tools/libclang/CXCursor.cpp b/clang/tools/libclang/CXCursor.cpp index b4b9ed9d300..5117a4d2b3e 100644 --- a/clang/tools/libclang/CXCursor.cpp +++ b/clang/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) { |