xref: /llvm-project/clang/test/Index/get-cursor.c (revision 58d0e7ab79a33b2d8352765abbca2c03c34e09de)
1440f954dSArgyrios Kyrtzidis struct _MyS {
2440f954dSArgyrios Kyrtzidis   int foo;
3440f954dSArgyrios Kyrtzidis } MyS;
4440f954dSArgyrios Kyrtzidis 
5440f954dSArgyrios Kyrtzidis struct _MyS ww;
6440f954dSArgyrios Kyrtzidis 
7091b87bbSArgyrios Kyrtzidis int x, y;
8091b87bbSArgyrios Kyrtzidis 
9*58d0e7abSArgyrios Kyrtzidis typedef union {
10*58d0e7abSArgyrios Kyrtzidis   struct {
11*58d0e7abSArgyrios Kyrtzidis     int field : 16;
12*58d0e7abSArgyrios Kyrtzidis   };
13*58d0e7abSArgyrios Kyrtzidis } r_t;
14*58d0e7abSArgyrios Kyrtzidis 
test()15*58d0e7abSArgyrios Kyrtzidis void test() {
16*58d0e7abSArgyrios Kyrtzidis   r_t reg;
17*58d0e7abSArgyrios Kyrtzidis   reg.field = 1;
18*58d0e7abSArgyrios Kyrtzidis }
19*58d0e7abSArgyrios Kyrtzidis 
20440f954dSArgyrios Kyrtzidis // RUN: c-index-test -cursor-at=%s:1:9 \
21440f954dSArgyrios Kyrtzidis // RUN:              -cursor-at=%s:2:9 \
22440f954dSArgyrios Kyrtzidis // RUN:              -cursor-at=%s:5:9 \
23091b87bbSArgyrios Kyrtzidis // RUN:              -cursor-at=%s:7:5 \
24091b87bbSArgyrios Kyrtzidis // RUN:              -cursor-at=%s:7:8 \
25*58d0e7abSArgyrios Kyrtzidis // RUN:              -cursor-at=%s:17:8 \
26440f954dSArgyrios Kyrtzidis // RUN:       %s | FileCheck %s
27440f954dSArgyrios Kyrtzidis 
28440f954dSArgyrios Kyrtzidis // CHECK: StructDecl=_MyS:1:8 (Definition)
29440f954dSArgyrios Kyrtzidis // CHECK: FieldDecl=foo:2:7 (Definition)
30440f954dSArgyrios Kyrtzidis // CHECK: TypeRef=struct _MyS:1:8
31091b87bbSArgyrios Kyrtzidis // CHECK: VarDecl=x:7:5
32091b87bbSArgyrios Kyrtzidis // CHECK: VarDecl=y:7:8
33*58d0e7abSArgyrios Kyrtzidis // CHECK: 17:7 MemberRefExpr=field:11:9