reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | // RUN: %clang_cc1 -fblocks %s -emit-llvm -o %t // rdar: // 8041962 extern "C" int printf(const char*, ...); struct ST { int filler; int referrer; }; void OUTER_BLOCK(void (^fixer)(ST& ref)) { ST ref = {2, 100}; fixer(ref); } void INNER_BLOCK(int (^largeDo) ()) { printf("%d\n", largeDo()); } void scan() { OUTER_BLOCK(^(ST &ref) { INNER_BLOCK(^() { return ref.referrer + ref.filler; }); }); } int main() { scan(); } |