Compiler projects using llvm
typedef int (^BlockTy)(void);

struct S0 {
  int a;
};

struct S {
  int i;
  void func(BlockTy __attribute__((noescape)));
  int foo(S0 &);

  void m() {
    __block S0 x;
    func(^{ return foo(x); });
  }
};