[libclang] Fix getting a cursor that points inside tag definition that is part
of a type specifier.
e.g. for:
typedef struct _MyS {
int foo;
} MyS;
pointing at field 'foo' would give a cursor for the typedef declaration 'MyS'
instead of the field.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138593 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 2ab0279..f1f2cb1 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -1445,6 +1445,9 @@
}
bool CursorVisitor::VisitTagTypeLoc(TagTypeLoc TL) {
+ if (TL.isDefinition())
+ return Visit(MakeCXCursor(TL.getDecl(), TU));
+
return Visit(MakeCursorTypeRef(TL.getDecl(), TL.getNameLoc(), TU));
}