// RUN: clang-cc -triple i386-unknown-unknown %s -emit-llvm -o %t -fblocks && void (^f)(void) = ^{}; // rdar://6768379 int f0(int (^a0)()) { return a0(1, 2, 3); } // Verify that attributes on blocks are set correctly. typedef struct s0 T; struct s0 { int a[64]; }; // RUN: grep 'internal void @__f2_block_invoke_(.struct.s0\* noalias sret .*, .*, .* byval .*)' %t && struct s0 f2(struct s0 a0) { return ^(struct s0 a1){ return a1; }(a0); } // This should not crash: rdar://6808051 void *P = ^{ void *Q = __func__; }; void (^test1)(void) = ^(void) { __block int i; ^ { i = 1; }(); }; // RUN: true