diff options
Diffstat (limited to 'clang/test/Index/get-cursor.m')
| -rw-r--r-- | clang/test/Index/get-cursor.m | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/test/Index/get-cursor.m b/clang/test/Index/get-cursor.m index d321233401c..af277d45fdf 100644 --- a/clang/test/Index/get-cursor.m +++ b/clang/test/Index/get-cursor.m @@ -129,6 +129,31 @@ void foo3(Test3 *test3) { } @end +#define NS_ENUM(_name, _type) enum _name : _type _name; enum _name : _type +typedef NS_ENUM(TestTransparent, int) { + TestTransparentFirst = 0, + TestTransparentSecond = 1, +}; +typedef enum TestTransparent NotTransparent; + +TestTransparent transparentTypedef; +enum TestTransparent transparentUnderlying; +NotTransparent opaqueTypedef; + +#define MY_ENUM(_name, _type) enum _name : _type _name##_t; enum _name : _type +typedef MY_ENUM(TokenPaste, int) { + TokenPasteFirst = 0, +}; +TokenPaste_t opaqueTypedef2; + +#define MY_TYPE(_name) struct _name _name; struct _name +typedef MY_TYPE(SomeT) { int x; }; +SomeT someVar; + +#define MY_TYPE2(_name) struct _name *_name; struct _name +typedef MY_TYPE2(SomeT2) { int x; }; +SomeT2 someVar2; + // RUN: c-index-test -cursor-at=%s:4:28 -cursor-at=%s:5:28 %s | FileCheck -check-prefix=CHECK-PROP %s // CHECK-PROP: ObjCPropertyDecl=foo1:4:26 @@ -193,3 +218,11 @@ void foo3(Test3 *test3) { // RUN: c-index-test -cursor-at=%s:127:8 %s | FileCheck -check-prefix=CHECK-RECEIVER-WITH-NULLABILITY %s // RUN: c-index-test -cursor-at=%s:128:8 %s | FileCheck -check-prefix=CHECK-RECEIVER-WITH-NULLABILITY %s // CHECK-RECEIVER-WITH-NULLABILITY: Receiver-type=ObjCId + +// RUN: c-index-test -cursor-at=%s:139:1 -cursor-at=%s:140:6 -cursor-at=%s:141:1 -cursor-at=%s:147:1 -cursor-at=%s:151:1 -cursor-at=%s:155:1 %s | FileCheck -check-prefix=CHECK-TRANSPARENT %s +// CHECK-TRANSPARENT: 139:1 TypeRef=TestTransparent:133:17 (Transparent: enum TestTransparent) Extent=[139:1 - 139:16] Spelling=TestTransparent ([139:1 - 139:16]) +// CHECK-TRANSPARENT: 140:6 TypeRef=enum TestTransparent:133:17 Extent=[140:6 - 140:21] Spelling=enum TestTransparent ([140:6 - 140:21]) +// CHECK-TRANSPARENT: 141:1 TypeRef=NotTransparent:137:30 Extent=[141:1 - 141:15] Spelling=NotTransparent ([141:1 - 141:15]) +// CHECK-TRANSPARENT: 147:1 TypeRef=TokenPaste_t:144:9 Extent=[147:1 - 147:13] Spelling=TokenPaste_t ([147:1 - 147:13]) +// CHECK-TRANSPARENT: 151:1 TypeRef=SomeT:150:17 (Transparent: struct SomeT) Extent=[151:1 - 151:6] Spelling=SomeT ([151:1 - 151:6]) +// CHECK-TRANSPARENT: 155:1 TypeRef=SomeT2:154:18 Extent=[155:1 - 155:7] Spelling=SomeT2 ([155:1 - 155:7]) |

