diff options
-rw-r--r-- | tools/libclang/CIndexHigh.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/libclang/CIndexHigh.cpp b/tools/libclang/CIndexHigh.cpp index a2a585454e..a4f85b4c12 100644 --- a/tools/libclang/CIndexHigh.cpp +++ b/tools/libclang/CIndexHigh.cpp @@ -343,6 +343,12 @@ void clang_findReferencesInFile(CXCursor cursor, CXFile file, return; } + ASTUnit *CXXUnit = cxcursor::getCursorASTUnit(cursor); + if (!CXXUnit) + return; + + ASTUnit::ConcurrencyCheck Check(*CXXUnit); + if (cursor.kind == CXCursor_MacroDefinition || cursor.kind == CXCursor_MacroExpansion) { findMacroRefsInFile(cxcursor::getCursorTU(cursor), @@ -370,9 +376,6 @@ void clang_findReferencesInFile(CXCursor cursor, CXFile file, return; } - ASTUnit *CXXUnit = cxcursor::getCursorASTUnit(cursor); - ASTUnit::ConcurrencyCheck Check(*CXXUnit); - findIdRefsInFile(cxcursor::getCursorTU(cursor), refCursor, static_cast<const FileEntry *>(file), |