]> granicus.if.org Git - clang/commit
[libclang] Only mark CXCursors for explicit attributes with a type
authorErik Verbruggen <erikjv@me.com>
Tue, 24 Apr 2018 08:39:46 +0000 (08:39 +0000)
committerErik Verbruggen <erikjv@me.com>
Tue, 24 Apr 2018 08:39:46 +0000 (08:39 +0000)
commitd3799d838c4843af72db6a8931af82f766f72c01
tree0eb290e74f8c0d44b6253c1dc091f74f9e0f8592
parent6871058dbd44b2e7f73c4eca5d93b2f3f9dc9b07
[libclang] Only mark CXCursors for explicit attributes with a type

All attributes have a source range associated with it. However, implicit
attributes are added by the compiler, and not added because the user
wrote something in the input. So no token type should be set to
CXCursor_*Attr.

The problem was visible when a class gets marked by e.g.
MSInheritanceAttr, which has the full CXXRecordDecl's range as its
own range. The effect of marking that range as CXCursor_UnexposedAttr
was that all cursors for the record decl, including all child decls,
would become CXCursor_UnexposedAttr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@330692 91177308-0d34-0410-b5e6-96231b3b80d8
test/Index/annotate-tokens-unexposed.cpp [new file with mode: 0644]
tools/libclang/CIndex.cpp