1 // RUN: %clang_cc1 -fblocks -debug-info-kind=limited -emit-llvm %s -o - | FileCheck %s
2 // Ensure that we generate a line table entry for the block cleanup.
3 // CHECK: define {{.*}} @__main_block_invoke
4 // CHECK: _NSConcreteStackBlock
5 // CHECK: call {{.*}} @_Block_object_dispose{{.*}}, !dbg ![[L1:[0-9]+]]
8 void * _NSConcreteStackBlock
;
10 extern "C" void exit(int);
12 extern void exit(int);
16 zero
, one
, two
, three
, four
19 typedef enum numbers (^myblock
)(enum numbers
);
22 double test(myblock I
) {
27 __block
enum numbers x
= one
;
28 __block
enum numbers y
= two
;
30 /* Breakpoint for first Block function. */
31 myblock CL
= ^(enum numbers z
)
32 { enum numbers savex
= x
;
33 { __block
enum numbers x
= savex
;
38 /* Breakpoint for second Block function. */
50 return (enum numbers
) four
;
55 enum numbers res
= (enum numbers
)test(CL
);