blob: 6c978027231f9c3a9a89a95547d9ee9711cf2db5 [file] [log] [blame]
John McCallfc929202010-06-04 22:33:30 +00001// RUN: c-index-test -test-load-source local -fblocks %s | FileCheck %s
2
3typedef int int_t;
4struct foo { long x; };
5
6void test() {
7 static struct foo _foo;
Douglas Gregor38f28c12010-10-22 22:24:08 +00008 __block i = 0;
9 ^ int_t(struct foo *foo) { return (int_t) foo->x + i; }(&_foo);
John McCallfc929202010-06-04 22:33:30 +000010}
11
Abramo Bagnaraff676cb2011-03-08 08:55:46 +000012// CHECK: blocks.c:6:6: FunctionDecl=test:6:6 (Definition) Extent=[6:1 - 10:2]
Douglas Gregor38f28c12010-10-22 22:24:08 +000013// CHECK: blocks.c:6:13: UnexposedStmt= Extent=[6:13 - 10:2]
14// CHECK: blocks.c:7:3: UnexposedStmt= Extent=[7:3 - 7:26]
Abramo Bagnaraff676cb2011-03-08 08:55:46 +000015// CHECK: blocks.c:7:21: VarDecl=_foo:7:21 (Definition) Extent=[7:3 - 7:25]
John McCallfc929202010-06-04 22:33:30 +000016// CHECK: blocks.c:7:17: TypeRef=struct foo:4:8 Extent=[7:17 - 7:20]
Abramo Bagnaraff676cb2011-03-08 08:55:46 +000017// CHECK: blocks.c:8:11: VarDecl=i:8:11 (Definition) Extent=[8:3 - 8:16]
Douglas Gregor38f28c12010-10-22 22:24:08 +000018// CHECK: blocks.c:8:15: UnexposedExpr= Extent=[8:15 - 8:16]
19// CHECK: blocks.c:9:3: CallExpr= Extent=[9:3 - 9:65]
20// CHECK: blocks.c:9:3: UnexposedExpr= Extent=[9:3 - 9:58]
21// CHECK: blocks.c:9:5: TypeRef=int_t:3:13 Extent=[9:5 - 9:10]
Abramo Bagnaraff676cb2011-03-08 08:55:46 +000022// CHECK: blocks.c:9:23: ParmDecl=foo:9:23 (Definition) Extent=[9:11 - 9:26]
Douglas Gregor38f28c12010-10-22 22:24:08 +000023// CHECK: blocks.c:9:18: TypeRef=struct foo:4:8 Extent=[9:18 - 9:21]
24// CHECK: blocks.c:9:28: UnexposedStmt= Extent=[9:28 - 9:58]
25// CHECK: blocks.c:9:30: UnexposedStmt= Extent=[9:30 - 9:55]
26// CHECK: blocks.c:9:37: UnexposedExpr= Extent=[9:37 - 9:55]
Argyrios Kyrtzidisc2954612011-09-12 22:17:26 +000027// CHECK: blocks.c:9:37: UnexposedExpr= Extent=[9:37 - 9:51]
Douglas Gregor38f28c12010-10-22 22:24:08 +000028// CHECK: blocks.c:9:38: TypeRef=int_t:3:13 Extent=[9:38 - 9:43]
Douglas Gregor430d7a12011-07-25 17:48:11 +000029// CHECK: blocks.c:9:50: MemberRefExpr=x:4:19 SingleRefName=[9:50 - 9:51] RefName=[9:50 - 9:51] Extent=[9:45 - 9:51]
Douglas Gregor38f28c12010-10-22 22:24:08 +000030// CHECK: blocks.c:9:45: DeclRefExpr=foo:9:23 Extent=[9:45 - 9:48]
31// CHECK: blocks.c:9:54: DeclRefExpr=i:8:11 Extent=[9:54 - 9:55]
32// CHECK: blocks.c:9:59: UnexposedExpr= Extent=[9:59 - 9:64]
33// CHECK: blocks.c:9:60: DeclRefExpr=_foo:7:21 Extent=[9:60 - 9:64]
34