aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/libclang/CIndexHigh.cpp9
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),