summaryrefslogtreecommitdiffstats
path: root/test/Index/blocks.c
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-10-22 22:24:08 +0000
committerDouglas Gregor <dgregor@apple.com>2010-10-22 22:24:08 +0000
commit38f28c1189142429384996409fffbc57f67b5c60 (patch)
treea07cd8af051b5139f5a859304298bd6f88b34341 /test/Index/blocks.c
parentf17b58c98b57537e9abfaaa8b5f19ea7e6de01ee (diff)
Teach clang_getCursorReferenced() and friends about BlockDeclRefExprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117167 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Index/blocks.c')
-rw-r--r--test/Index/blocks.c42
1 files changed, 24 insertions, 18 deletions
diff --git a/test/Index/blocks.c b/test/Index/blocks.c
index 08241cbcd1..5a31a21255 100644
--- a/test/Index/blocks.c
+++ b/test/Index/blocks.c
@@ -5,25 +5,31 @@ struct foo { long x; };
void test() {
static struct foo _foo;
- ^ int_t(struct foo *foo) { return (int_t) foo->x; }(&_foo);
+ __block i = 0;
+ ^ int_t(struct foo *foo) { return (int_t) foo->x + i; }(&_foo);
}
-// TODO: expose the BlockExpr, CastExpr, and UnaryOperatorExpr here
-
-// CHECK: blocks.c:3:13: TypedefDecl=int_t:3:13 (Definition) Extent=[3:13 - 3:18]
-// CHECK: blocks.c:4:8: StructDecl=foo:4:8 (Definition) Extent=[4:1 - 4:23]
-// CHECK: blocks.c:4:19: FieldDecl=x:4:19 (Definition) Extent=[4:19 - 4:20]
-// CHECK: blocks.c:6:6: FunctionDecl=test:6:6 (Definition) Extent=[6:6 - 9:2]
+// CHECK: blocks.c:6:6: FunctionDecl=test:6:6 (Definition) Extent=[6:6 - 10:2]
+// CHECK: blocks.c:6:13: UnexposedStmt= Extent=[6:13 - 10:2]
+// CHECK: blocks.c:7:3: UnexposedStmt= Extent=[7:3 - 7:26]
// CHECK: blocks.c:7:21: VarDecl=_foo:7:21 (Definition) Extent=[7:17 - 7:25]
// CHECK: blocks.c:7:17: TypeRef=struct foo:4:8 Extent=[7:17 - 7:20]
-// CHECK: blocks.c:8:3: CallExpr= Extent=[8:3 - 8:61]
-// CHECK: blocks.c:8:3: UnexposedExpr= Extent=[8:3 - 8:54]
-// CHECK: blocks.c:8:5: TypeRef=int_t:3:13 Extent=[8:5 - 8:10]
-// CHECK: blocks.c:8:23: ParmDecl=foo:8:23 (Definition) Extent=[8:18 - 8:26]
-// CHECK: blocks.c:8:18: TypeRef=struct foo:4:8 Extent=[8:18 - 8:21]
-// CHECK: blocks.c:8:37: UnexposedExpr=x:4:19 Extent=[8:37 - 8:51]
-// CHECK: blocks.c:8:38: TypeRef=int_t:3:13 Extent=[8:38 - 8:43]
-// CHECK: blocks.c:8:50: MemberRefExpr=x:4:19 Extent=[8:45 - 8:51]
-// CHECK: blocks.c:8:45: DeclRefExpr=foo:8:23 Extent=[8:45 - 8:48]
-// CHECK: blocks.c:8:55: UnexposedExpr= Extent=[8:55 - 8:60]
-// CHECK: blocks.c:8:56: DeclRefExpr=_foo:7:21 Extent=[8:56 - 8:60]
+// CHECK: blocks.c:8:3: UnexposedStmt= Extent=[8:3 - 8:17]
+// CHECK: blocks.c:8:11: VarDecl=i:8:11 (Definition) Extent=[8:11 - 8:16]
+// CHECK: blocks.c:8:15: UnexposedExpr= Extent=[8:15 - 8:16]
+// CHECK: blocks.c:9:3: CallExpr= Extent=[9:3 - 9:65]
+// CHECK: blocks.c:9:3: UnexposedExpr= Extent=[9:3 - 9:58]
+// CHECK: blocks.c:9:5: TypeRef=int_t:3:13 Extent=[9:5 - 9:10]
+// CHECK: blocks.c:9:23: ParmDecl=foo:9:23 (Definition) Extent=[9:18 - 9:26]
+// CHECK: blocks.c:9:18: TypeRef=struct foo:4:8 Extent=[9:18 - 9:21]
+// CHECK: blocks.c:9:28: UnexposedStmt= Extent=[9:28 - 9:58]
+// CHECK: blocks.c:9:30: UnexposedStmt= Extent=[9:30 - 9:55]
+// CHECK: blocks.c:9:37: UnexposedExpr= Extent=[9:37 - 9:55]
+// CHECK: blocks.c:9:37: UnexposedExpr=x:4:19 Extent=[9:37 - 9:51]
+// CHECK: blocks.c:9:38: TypeRef=int_t:3:13 Extent=[9:38 - 9:43]
+// CHECK: blocks.c:9:50: MemberRefExpr=x:4:19 Extent=[9:45 - 9:51]
+// CHECK: blocks.c:9:45: DeclRefExpr=foo:9:23 Extent=[9:45 - 9:48]
+// CHECK: blocks.c:9:54: DeclRefExpr=i:8:11 Extent=[9:54 - 9:55]
+// CHECK: blocks.c:9:59: UnexposedExpr= Extent=[9:59 - 9:64]
+// CHECK: blocks.c:9:60: DeclRefExpr=_foo:7:21 Extent=[9:60 - 9:64]
+