29 lines · cpp
1// RUN: %clang_cc1 -fblocks %s -emit-llvm -o %t2 3extern "C" int printf(const char*, ...);4 5struct ST {6 int filler; 7 int referrer;8};9 10void OUTER_BLOCK(void (^fixer)(ST& ref)) {11 ST ref = {2, 100};12 fixer(ref);13}14 15void INNER_BLOCK(int (^largeDo) ()) {16 printf("%d\n", largeDo());17}18 19void scan() {20 OUTER_BLOCK(^(ST &ref) {21 INNER_BLOCK(^() { return ref.referrer + ref.filler; });22 });23 24}25 26int main() {27 scan();28}29