aboutsummaryrefslogtreecommitdiff
path: root/test/Index
diff options
context:
space:
mode:
authorErik Verbruggen <erikjv@me.com>2018-04-24 08:39:46 +0000
committerErik Verbruggen <erikjv@me.com>2018-04-24 08:39:46 +0000
commitd3799d838c4843af72db6a8931af82f766f72c01 (patch)
tree0eb290e74f8c0d44b6253c1dc091f74f9e0f8592 /test/Index
parent6871058dbd44b2e7f73c4eca5d93b2f3f9dc9b07 (diff)
downloadclang-d3799d838c4843af72db6a8931af82f766f72c01.tar.gz
[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
Diffstat (limited to 'test/Index')
-rw-r--r--test/Index/annotate-tokens-unexposed.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Index/annotate-tokens-unexposed.cpp b/test/Index/annotate-tokens-unexposed.cpp
new file mode 100644
index 0000000000..3e5d79426e
--- /dev/null
+++ b/test/Index/annotate-tokens-unexposed.cpp
@@ -0,0 +1,20 @@
+// RUN: c-index-test -test-annotate-tokens=%s:1:1:16:1 %s -target x86_64-pc-windows-msvc | FileCheck %s
+class Foo
+{
+public:
+ void step(int v);
+ Foo();
+};
+
+void bar()
+{
+ // Introduce a MSInheritanceAttr node on the CXXRecordDecl for Foo. The
+ // existance of this attribute should not mark all cursors for tokens in
+ // Foo as UnexposedAttr.
+ &Foo::step;
+}
+
+Foo::Foo()
+{}
+
+// CHECK-NOT: UnexposedAttr=