brintos

brintos / llvm-project-archived public Read only

0
0
Text · 470 B · 41f142a Raw
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